Asosiy farq – erta va kech bogʻlash
Erta bogʻlanish va kech bogʻlash polimorfizm bilan bogʻliq ikkita tushunchadir. Erta bog'lanish kompilyatsiya vaqtida, kech bog'lanish esa ish vaqtida sodir bo'ladi. Erta va kech bog'lash o'rtasidagi asosiy farq shundaki, Erta bog'lash usuli chaqiruvni hal qilish uchun sinf ma'lumotlaridan foydalanadi, kech bog'lash esa usul chaqiruvini hal qilish uchun ob'ektdan foydalanadi.
Java kabi dasturlash tillari obyektga yoʻn altirilgan dasturlashni (OOP) qoʻllab-quvvatlaydi. Bu ob'ektlar yordamida dastur yoki dasturiy ta'minotni yaratishga imkon beruvchi paradigma. Dasturiy ta'minotda bir nechta ob'ektlar mavjud. Ushbu ob'ektlar bir-biri bilan bog'lanadi va usullar yordamida xabarlarni uzatadi. Har bir ob'ekt o'ziga xos xususiyatlarga va xatti-harakatlarga ega. Xususiyatlar xususiyatlar yoki atributlar bilan tavsiflanadi. Xulq-atvor usullar yordamida tasvirlangan. Talaba ob'ekti ism, yosh kabi xususiyatlarga ega bo'lishi mumkin va ular xususiyatlar bilan ifodalanadi. Talaba ob'ekti o'rganish va o'qish kabi xatti-harakatlarga ega bo'lishi mumkin va ular usullar bilan ifodalanadi. OOPning asosiy ustunlaridan biri polimorfizmdir. Bu ob'ektga turli yo'llar bilan harakat qilish imkonini beradi. Erta bog'lanish va kech bog'lanish polimorfizmdagi ikkita tushunchadir. Haddan tashqari yuklash usullari erta bog'lash yordamida bog'lanadi. Qayta belgilangan usullar kechikish orqali biriktiriladi.
Erta majburiy majburiyat nima?
Early Binding-da sinf ma'lumotlari usul chaqiruvini hal qilish uchun ishlatiladi. Erta bog'lanish kompilyatsiya vaqtida sodir bo'ladi. U statik bog'lanish sifatida ham tanilgan. Ushbu jarayonda bog'lanish dasturni ishga tushirishdan oldin sodir bo'ladi. Haddan tashqari yuklash usullari erta bog'lash yordamida bog'lanadi. Quyidagi dasturga qarang.
01-rasm: Hisoblash klassi
02-rasm: Erta ulanish uchun asosiy dastur
Yuqoridagi dasturga muvofiq, Calculation klassi ikkita butun qiymatni qabul qiluvchi qoʻshish usulini va ikkita qoʻsh qiymatni qabul qiluvchi boshqa qoʻshish usulini oʻz ichiga oladi. Asosiy dasturda Calculation tipidagi obyekt yaratiladi. Qo'shish usuliga ikkita butun sonni o'tkazishda u ikkita butun sonni qabul qiluvchi qo'shish usulini chaqiradi. Qo'shish usuliga ikkita qo'sh qiymat o'tkazilganda, u ikkita qo'sh qiymatga mos keladigan usulni chaqiradi. Ushbu bog'lash jarayoni kompilyatsiya vaqtida sodir bo'ladi. Barcha kerakli ma'lumotlar ish vaqtidan oldin ma'lum, shuning uchun u dastur samaradorligini va bajarilish tezligini oshiradi.
Kechikish nima?
Kech bog'lashda ob'ekt usul chaqiruvini hal qilish uchun ishlatiladi. Kechiktirilgan ulanish ish vaqtida sodir bo'ladi. U dinamik bog'lanish sifatida ham tanilgan. Ushbu jarayonda bog'lanish dasturni bajarishda sodir bo'ladi. O'chirilgan usullar kechikish yordamida bog'lanadi. Quyidagi dasturga qarang.
03-rasm: Shakl sinfi
04-rasm: Doira sinfi
05-rasm: Uchburchaklar sinfi
06-rasm: kechikish uchun asosiy dastur
Yuqoridagi dasturga muvofiq Shape sinfida chizish usuli mavjud. Class Circle va Class Triangle klassi Shape sinfini kengaytiradi. Shuning uchun bu ikki sinf Shape sinfining atributlari va usullarini meros qilib olishi mumkin. Shakl sinfi asosiy sinfdir. Circle va Triangle sinflari hosila sinflardir. Circle sinfi va Triangle klassi ham o'zlarining ilovalari bilan chizish usuliga ega. Shunday qilib, Shape sinfidagi chizish usuli olingan sinflarning chizish usullari bilan bekor qilinadi.
Asosiy dasturda Shape tipidagi s mos yozuvlar oʻzgaruvchisi yaratiladi. Kompilyatsiya vaqtida kompilyator faqat asosiy sinf chizish usuliga murojaat qiladi. Ishlash vaqtida turli chizish usullari bajariladi. Birinchidan, s Shape tipidagi ob'ektga ishora qiladi. Shunday qilib, Shape sinfining chizish usuli chaqiriladi. Keyin s Circle tipidagi ob'ektga ishora qiladi va u Circle sinfining chizish usulini chaqiradi. Nihoyat, s Triangle tipidagi ob'ektga ishora qiladi va Triangle sinfida chizish usulini chaqiradi. Usullar ob'ektlarga qarab chaqiriladi. Shuning uchun, ob'ekt Kech ulanishda usul chaqiruvini hal qilish uchun ishlatiladi. Bog'lash uchun zarur bo'lgan ma'lumotlar ish vaqtida taqdim etiladi, shuning uchun bajarish tezligi erta bog'lanishga qaraganda sekinroq.
Erta bogʻlash va kech bogʻlash oʻrtasidagi oʻxshashlik nimada?
Erta bogʻlanish ham, kech bogʻlanish ham OOP asosi boʻlgan polimorfizm bilan bogʻliq
Erta majburiy va kech bogʻlash oʻrtasidagi farq nima?
Erta majburiy va kech bog'lash |
|
Toplash vaqtida yuzaga keladigan usul chaqiruvini hal qilish uchun sinf ma'lumotlaridan foydalanish jarayoni Erta ulanish deb ataladi. | Ishlash vaqtida yuzaga keladigan usul chaqiruvini hal qilish uchun ob'ektdan foydalanish jarayoni kechikish deb ataladi. |
Bogʻlanish vaqti | |
Erta ulanish kompilyatsiya vaqtida amalga oshiriladi. | Kechikish ish vaqtida sodir boʻladi. |
Funksionallik | |
Erta ulanish usuli chaqiruvni hal qilish uchun sinf ma'lumotlaridan foydalanadi. | Kech bogʻlash usuli chaqiruvni hal qilish uchun obʼyektdan foydalanadi. |
Sinonimlar | |
Erta bogʻlanish statik bogʻlanish sifatida ham tanilgan.. | Kechikish dinamik ulanish sifatida ham tanilgan. |
Voqea | |
Haddan tashqari yuklash usullari erta bogʻlash orqali bogʻlangan. | Oddiga yuklangan usullar kech bogʻlash yordamida biriktiriladi. |
Bajarish tezligi | |
Bajarish tezligi erta ulanishda tezroq. | Kech bog'lashda bajarish tezligi pastroq. |
Xulosa – Erta va kech bogʻlash
OOP odatda dasturiy ta'minotni ishlab chiqish uchun ishlatiladi. OOPning asosiy ustunlaridan biri polimorfizmdir. Erta bog'lash va kech bog'lash shu bilan bog'liq. Erta bog'lanish kompilyatsiya vaqtida, kech bog'lanish esa ish vaqtida sodir bo'ladi. Usulni haddan tashqari yuklashda bog'lanish erta bog'lash yordamida sodir bo'ladi. Usulni bekor qilishda bog'lanish kechikish yordamida amalga oshiriladi. Erta va kech bog'lash o'rtasidagi farq shundaki, Erta bog'lash usuli chaqiruvni hal qilish uchun sinf ma'lumotlaridan foydalanadi, kech bog'lash esa usul chaqiruvini hal qilish uchun ob'ektdan foydalanadi.