Asosiy farq - Statik bog'lash va Dinamik bog'lash

Java va C # kabi dasturlash tillari Object Oriented Programming (OOP) ni qo'llab-quvvatlaydi. Ob'ektlardan foydalangan holda dasturiy ta'minotni yaratishga imkon beradi. Dasturiy ta'minot tizimida yoki dasturda ko'plab ob'ektlar mavjud. Ushbu ob'ektlar atributlar va usullarga ega. Atributlar xususiyatlarni tavsiflaydi. Usullar ob'ekt tomonidan bajarilishi mumkin bo'lgan harakatlarni tavsiflaydi. Ma'lumotlar metodlar yordamida ob'ektlar orqali uzatiladi. Kerakli qiymatlar parametrli usul bilan qo'ng'iroqlar orqali yuboriladi. Usulning haqiqiy bajarilishi usulni aniqlashda. Usulni chaqirish va usulni aniqlash o'rtasida bog'liqlik mavjud. U bog'lash deb nomlanadi. Ikki turdagi bog'lash mavjud. Ular statik bog'lovchi va dinamik majburiydir. Statik bog'lash va dinamik bog'lash o'rtasidagi asosiy farq shundaki, statik bog'lashda, bog'lash kompilyatsiya vaqtida hal qilinadi, dinamik bog'lanish esa bajarilishning haqiqiy vaqti bo'lgan ish vaqtida hal qilinadi. Ushbu maqolada ushbu ikkita majburiy mexanizm o'rtasidagi farq haqida gap boradi.

MUNDARIJA

1. Umumiy nuqtai nazar va asosiy farq 2. Statik bog'lanish nima o'zi? 3. Dinamik bog'lanish nima o'zi? 4. Statik bog'lash va dinamik bog'lanish o'rtasidagi o'xshashliklar 5. Yon taqqoslash - yonma-yon turadigan statik bog'lash va dinamik bog'lanish jadval ko'rinishida 6. Xulosa

Statik majburiylik nima?

Bog'lovchi - bu chaqiruv usulini va usulni aniqlash o'rtasidagi bog'liqlik.

Java-da yozilgan quyidagi dasturga qarang.

jamoat klassi A {

ommaviy bo'shliq usuli1 () {

System.out.println ("1-usul");

}

ommaviy bo'shliq usuli2 () {

System.out.println ("2-usul");

}

ommaviy statik void main (String [] args) {

A obj = yangi A ();

obj.method1 ();

obj.method2 ();

}

}

Yuqoridagi dasturga ko'ra A turidagi ob'ekt yaratiladi. Keyin 1-usul va 2-usul chaqiriladi. Bajarish uchun qaysi usulni chaqirish kerakligini aniqlash majburiy deb nomlanadi. Obj.method1 () buyrug'i 1-usul () va obj.method2 () esa metod2 () ni chaqiradi. Ushbu havola majburiydir.

Statik bog'lashda, bog'lash kompilyatsiya vaqtida kompilyator tomonidan hal qilinadi. Bundan tashqari, erta bog'lash sifatida ham tanilgan. Dastur amal qilishidan oldin bog'lanish sodir bo'ladi. Statik bog'lash usulni haddan tashqari yuklashda sodir bo'ladi. Java-da yozilgan quyidagi dasturga qarang.

ommaviy bo'shliqni hisoblash {

umumiy bo'shlik summasi (int x, int y) {

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

}

ommaviy bo'shliq summasi (double x, double y) {

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

}

ommaviy statik void main (String [] args) {

Hisoblash kal = yangi hisoblash ();

kal.sum (2,3);

kal.sum (5.1, 6.4);

}

}

Yuqoridagi dasturga ko'ra, ikkita butun sonni kesib o'tishda, ikkita butun son bilan bo'lgan usul chaqiriladi. Ikki juft qiymatni uzatishda ikkita qo'shaloq qiymatga mos keladigan usul chaqiriladi. Ushbu bog'lash jarayoni kompilyatsiya paytida sodir bo'ladi. Tuzuvchi bu usulni cal.sum (2,3) uchun ikkita butun son bilan hisoblash kerakligini biladi. Cal (5.1,6.4) uchun ikkita qo'shaloq qiymatga ega bo'lgan yig'indilar usuli qo'llaniladi. Barcha kerakli ma'lumotlar ish vaqtidan oldin ma'lum, shuning uchun dasturning samaradorligi va bajarilish tezligini oshiradi.

Dinamik bog'lash nima?

Dynamic Binding-da kompilyator kompilyatsiya vaqtida ulanishni hal qilmaydi. Bog'lash ish paytida sodir bo'ladi. Bu kech bog'lash sifatida ham tanilgan. Dynamic Binding usuli bekor qilish usulida sodir bo'ladi. Java-da yozilgan dasturga murojaat qiling.

ommaviy sinf Shape () {

jamoat bo'shlig'i () {

System.out.println ("Shaklni chizish");

}

}

public class Circle () Shape formatini kengaytiradi {

jamoat bo'shlig'i () {

System.out.println ("Chizish doirasi");

}

}

jamoat sinfi Triangle () Shape-ni kengaytiradi {

jamoat bo'shlig'i () {

System.out.println ("Uchburchak chizish");

}

}

jamoat sinovlari {

ommaviy statik void main (String [] args) {

Shakl s;

s = yangi Shape ();

s.draw ();

s = yangi aylana ();

s.draw ();

s = yangi uchburchak ();

s.draw ();

}

}

Yuqoridagi dasturga ko'ra, Shape klassida () usulida chizish mavjud. Class Circle va sinf uchburchagi Shape sinfini qamrab oladi. Class Circle va sinf uchburchagi Shape sinfining atributlari va usullariga ega bo'lishi mumkin. Shuning uchun Shape klassi bu super sinf yoki ota-ona sinfidir. Sinf doirasi va sinf uchburchagi pastki sinflar yoki olingan sinflardir. Bu sinflar shuningdek o'zlarining tatbiqotlari bilan chizish () usuliga ega. Shuning uchun super sinfda durang () usuli bekor qilinadi.

Asosiy usulda turli xil ob'ektlar chaqiriladi. Shape turidagi mos yozuvlar o'zgaruvchisi mavjud, bu s. Keyin, s aniq sinfga qarab usulni chaqiradi. Kompilyatsiya paytida kompilyator faqat super klass chizish usuliga murojaat qiladi. Haqiqiy ijro etish boshlanganda, chizishning turli usullarini bajarishga olib keladi. Birinchidan, s Shape turidagi ob'ektga ishora qiladi. Shuning uchun u Shape sinfida durang usulini ishga tushiradi. Shunda s Circle tipidagi ob'ektga ishora qiladi va u Circle klassining chizish usulini qo'llaydi. Va nihoyat, s uchburchaklar turidagi ob'ektga murojaat qilinadi va uchburchak sinfida chizish usulini qo'llaydi. Malumot o'zgaruvchisi Shape turida bo'lsa ham, bog'lanish ob'ekt turiga bog'liq bo'ladi. Ushbu tushuncha "Dinamik bog'lash" deb nomlanadi. Ma'lumotlar ish vaqtida taqdim etiladi, shuning uchun statik bog'lanish bilan taqqoslaganda, bajarish tezligi sekinroq.

Statik bog'lash va dinamik bog'lash o'rtasidagi o'xshashlik nima?

  • Bularning ikkalasi ham polimorfizm bilan bog'liq bo'lib, bu ob'ektga bir necha bor o'zini tutishga imkon beradi.

Statik bog'lash va dinamik bog'lash o'rtasidagi farq nima?

Statik bog'lash va Dinamik bog'lash
Statik bog'lash - kompilyatsiya vaqtida funktsiyani chaqirish uchun barcha kerakli ma'lumotlarni to'playdigan majburiylik turi.Dynamic Binding - bu ishga tushirish vaqtida funktsiyani chaqirish uchun barcha kerakli ma'lumotlarni to'playdigan bog'lash turi.
Bog'lanish vaqti
Statik bog'lash kompilyatsiya vaqtida sodir bo'ladi.Dinamik bog'lanish ish vaqtida sodir bo'ladi.
Funktsionallik
Statik bog'lash ulanish uchun turdagi ma'lumotlardan foydalanadi.Dynamic Binding bog'lab qo'yish uchun ob'ektlardan foydalanadi.
Haqiqiy ob'ekt
Statik bog'lash amal qilish uchun haqiqiy ob'ektdan foydalanmaydi.Dinamik bog'lash, bog'lash uchun haqiqiy ob'ektdan foydalaning.
Sinonimlar
Statik bog'lash shuningdek, erta bog'lash sifatida ham tanilgan.Dinamik bog'lash shuningdek kech bog'lash deb ham nomlanadi.
Bajarish
Bajarish tezligi statik bog'lanishda tezdir.Ishlash tezligi dinamik bog'lanishda past.
Misol
Statik bog'lash usulni ortiqcha yuklashda qo'llaniladi.Dinamik bog'lash usulni bekor qilishda qo'llaniladi.

Qisqacha mazmun - Statik bog'lash va Dinamik bog'lash

Usulni chaqirish va usulni aniqlash o'rtasida bog'liqlik mavjud. U bog'lash deb nomlanadi. Statik bog'lash va dinamik bog'lanish deb nomlangan ikkita bog'lanish mavjud. Statik bog'lash va dinamik bog'lash o'rtasidagi farq shundaki, statik bog'lashda, bog'lash kompilyatsiya vaqtida hal qilinadi, dinamik bog'lanish esa bajarilishning haqiqiy vaqti bo'lgan ish vaqtida hal qilinadi. Kerakli ma'lumotlar bajarilish vaqtidan oldin taqdim qilinganligi sababli, statik bog'lanish dinamik bog'lash bilan taqqoslaganda tez bajariladi.

Dynamic Binding vs Static Binding PDF-ni yuklab oling

Siz ushbu maqolaning PDF-versiyasini yuklab olishingiz va uni oflayn maqsadlarda foydalanishingiz mumkin. Iltimos, PDF formatda yuklab oling: Statik bog'lash va dinamik bog'lanish o'rtasidagi farq

Ma'lumot:

1.Java intervyusi 04 - Statik bog'lash va dinamik bog'lash, Mahika darsliklari, 27 dekabr 2017 yil.