Perbezaan Antara Pengikatan Statik Dan Pengikatan Dinamik

Isi kandungan:

Perbezaan Antara Pengikatan Statik Dan Pengikatan Dinamik
Perbezaan Antara Pengikatan Statik Dan Pengikatan Dinamik

Video: Perbezaan Antara Pengikatan Statik Dan Pengikatan Dinamik

Video: Perbezaan Antara Pengikatan Statik Dan Pengikatan Dinamik
Video: Carburator Modenas Dinamik 120 Leaking 2024, Mungkin
Anonim

Perbezaan Utama - Pengikat Statik vs Pengikat Dinamik

Bahasa pengaturcaraan seperti Java dan C # menyokong Pengaturcaraan Berorientasikan Objek (OOP). Ia membolehkan membina perisian menggunakan objek. Terdapat banyak objek dalam sistem perisian atau program. Objek-objek ini mempunyai atribut dan kaedah. Atribut menerangkan ciri. Kaedah menerangkan tindakan yang dapat dilakukan oleh objek. Data dihantar melalui objek menggunakan kaedah. Nilai yang diperlukan dihantar melalui panggilan kaedah dengan parameter. Pelaksanaan kaedah sebenar adalah dalam definisi kaedah. Terdapat kaitan antara panggilan kaedah dan definisi kaedah. Ia dikenali sebagai mengikat. Terdapat dua jenis ikatan. Mereka mengikat statik dan mengikat dinamik. Perbezaan utama antara pengikatan statik dan pengikatan dinamik adalah bahawa, dalam pengikatan statik, pengikatan diselesaikan pada waktu penyusunan sementara pengikatan dinamik diselesaikan pada waktu berjalan,yang merupakan masa pelaksanaan sebenarnya. Artikel ini membincangkan perbezaan antara dua mekanisme pengikat ini.

KANDUNGAN

1. Gambaran Keseluruhan dan Perbezaan Utama

2. Apa itu Pengikatan Statik

3. Apakah Pengikatan Dinamik

4. Persamaan Antara Pengikatan Statik dan Pengikatan Dinamik

5. Perbandingan Berdampingan - Ikatan Statik vs Pengikatan Dinamik dalam Bentuk Jadual

6. Ringkasan

Apakah Pengikatan Statik?

Mengikat adalah hubungan antara panggilan kaedah dan definisi kaedah.

Perbezaan Antara Pengikatan Statik dan Pengikatan Dinamik
Perbezaan Antara Pengikatan Statik dan Pengikatan Dinamik

Gambar 01: Pengikatan Statik dan Pengikatan Dinamik

Rujuk program di bawah yang ditulis dalam Java.

kelas awam A {

kaedah kekosongan awam1 () {

System.out.println ("Kaedah1");

}

kaedah kekosongan awam2 () {

System.out.println ("Kaedah2");

}

utama kekosongan statik awam (String args) {

A obj = baru A ();

obj.mode1 ();

obj.mode2 ();

}

}

Menurut program di atas, objek jenis A dibuat. Kemudian kaedah1 dan kaedah2 dipanggil. Mengenal pasti kaedah mana yang perlu dilaksanakan dikenali sebagai mengikat. Pernyataan obj.method1 () akan memanggil kaedah1 () dan obj.method2 () akan memanggil kaedah2 (). Pautan ini mengikat.

Dalam pengikatan statik, pengikatan diselesaikan pada masa penyusunan oleh penyusun. Ia juga dikenali sebagai pengikatan awal. Pengikatan berlaku sebelum sesuatu program dijalankan. Pengikatan statik berlaku dalam kaedah overloading. Rujuk program di bawah yang ditulis dalam Java.

Pengiraan kekosongan awam {

jumlah tidak sah awam (int x, int y) {

System.out.println ("Jumlah adalah", x + y);

}

jumlah terbatal awam (double x, double y) {

System.out.println ("Jumlah adalah", x + y);

}

utama kekosongan statik awam (String args) {

Pengiraan cal = Pengiraan baru ();

cal.sum (2,3);

cal.sum (5.1, 6.4);

}

}

Menurut program di atas, ketika melewati dua bilangan bulat, kaedah dengan dua bilangan bulat akan dipanggil. Apabila melewati dua nilai ganda, kaedah yang sepadan dengan dua nilai ganda akan dipanggil. Proses pengikatan ini berlaku pada masa penyusunan. Penyusun tahu bahawa ia harus memanggil kaedah jumlah dengan dua nilai integer untuk cal.sum (2,3). Untuk kal (5.1,6.4), ia akan memanggil kaedah penjumlahan dengan dua nilai ganda. Semua maklumat yang diperlukan diketahui sebelum waktu berjalan, sehingga meningkatkan kecekapan program dan kecepatan pelaksanaan.

Apa itu Pengikatan Dinamik?

Dalam Pengikatan Dinamik, penyusun tidak menyelesaikan pengikatan pada waktu kompilasi. Pengikatan berlaku pada masa berjalan. Ia juga dikenali sebagai pengikatan lewat. Pengikatan Dinamik berlaku dalam kaedah penggantian. Rujuk program yang ditulis di Jawa.

bentuk awam kelas () {

undian kekosongan awam () {

System.out.println ("Lukis bentuk");

}

}

bulatan kelas awam () memanjangkan Bentuk {

undian kekosongan awam () {

System.out.println ("Lukis bulatan");

}

}

Segitiga kelas awam () memanjangkan Bentuk {

undian kekosongan awam () {

System.out.println ("Lukis segitiga");

}

}

Ujian kelas awam {

utama kekosongan statik awam (String args) {

Bentuk s;

s = Bentuk baru ();

s.draw ();

s = Bulatan baru ();

s.draw ();

s = Segitiga baru ();

s.draw ();

}

}

Mengikut program di atas, kelas Shape mempunyai kaedah draw (). Kelas Bulatan dan segitiga kelas memanjangkan kelas Bentuk. Lingkaran Kelas dan Segitiga kelas dapat mewarisi atribut dan kaedah Bentuk kelas. Oleh itu, kelas Shape adalah kelas super atau kelas induk. Kelas Bulatan dan Segitiga Kelas adalah kelas bawah atau kelas turunan. Kelas-kelas ini juga mempunyai kaedah draw () dengan pelaksanaannya sendiri. Oleh itu, kaedah draw () di kelas super diganti.

Dalam kaedah utama, objek yang berbeza dipanggil. Terdapat pemboleh ubah rujukan jenis Bentuk, iaitu s. Kemudian, s memanggil kaedah mengikut kelas tertentu. Pada masa kompilasi, penyusun hanya akan merujuk kaedah cabutan kelas super. Apabila pelaksanaan sebenar bermula, ini akan membawa kepada pelaksanaan kaedah cabutan yang berbeza. Pertama, s akan menunjuk ke objek jenis Shape. Oleh itu, ia akan menggunakan kaedah undian di kelas Shape. Kemudian s akan menunjuk objek jenis Circle, dan ia akan menggunakan kaedah draw kelas Circle. Akhirnya, s akan merujuk kepada objek jenis Segitiga, dan ia akan menggunakan kaedah menggambar di kelas Segitiga. Walaupun pemboleh ubah rujukan adalah jenis Shape, pengikatannya bergantung pada jenis objek. Konsep ini dikenali sebagai Dynamic Binding. Maklumat diberikan pada waktu berjalan,jadi kelajuan pelaksanaan lebih perlahan berbanding dengan pengikatan statik.

Apakah persamaan antara pengikatan statik dan pengikatan dinamik?

Kedua-duanya berkaitan dengan polimorfisme yang membolehkan sesuatu objek bertindak dengan pelbagai cara

Apakah Perbezaan Antara Pengikatan Statik dan Pengikatan Dinamik?

Artikel Diff Tengah sebelum Jadual

Pengikat Statik vs Pengikat Dinamik

Static Binding adalah jenis pengikatan yang mengumpulkan semua maklumat yang diperlukan untuk memanggil fungsi semasa waktu kompilasi. Dynamic Binding adalah jenis pengikatan yang mengumpulkan semua maklumat yang diperlukan untuk memanggil fungsi semasa masa berjalan.
Masa Mengikat
Pengikatan Statik berlaku pada masa penyusunan. Pengikatan dinamik berlaku pada masa berjalan.
Kefungsian
Pengikat Statik menggunakan maklumat jenis untuk mengikat. Dynamic Binding menggunakan objek untuk menyelesaikan mengikat.
Objek Sebenar
Pengikatan statik tidak menggunakan objek sebenar untuk mengikat. Pengikatan dinamik, gunakan objek sebenar untuk mengikat.
Sinonim
Pengikatan statik juga dikenali sebagai pengikatan awal. Pengikatan dinamik juga dikenali sebagai pengikatan lewat.
Pelaksanaan
Kelajuan pelaksanaannya cepat dalam pengikatan statik. Kelajuan pelaksanaan rendah dalam pengikatan dinamik.
Contohnya
Pengikatan statik digunakan dalam kaedah overloading. Pengikatan dinamik digunakan dalam kaedah penggantian.

Ringkasan - Pengikat Statik vs Pengikatan Dinamik

Terdapat kaitan antara kaedah panggilan dan definisi kaedah. Ia dikenali sebagai mengikat. Terdapat dua jenis pengikatan yang disebut pengikatan statik dan pengikatan dinamik. Perbezaan antara pengikatan statik dan pengikatan dinamik adalah bahawa dalam pengikatan statik, pengikatan diselesaikan pada waktu penyusunan sementara pengikatan dinamik diselesaikan pada waktu berjalan, yang merupakan waktu pelaksanaan sebenarnya. Oleh kerana maklumat yang diperlukan diberikan sebelum waktu berjalan, pengikatan statik cepat dalam pelaksanaan dibandingkan dengan pengikatan dinamik.

Muat turun PDF Static Binding vs Dynamic Binding

Anda boleh memuat turun versi PDF artikel ini dan menggunakannya untuk tujuan luar talian seperti dalam catatan petikan. Sila muat turun versi PDF di sini: Perbezaan Antara Pengikatan Statik dan Pengikatan Dinamik

Disyorkan: