Ko‘p parametrli obyektga yo‘naltirilgan dasturlash
Bajardi: 301-22 guruh talabasi
Akbarov S.U.
Qabul qildi: Doshanova Malika.
Toshkent – 2023
Obyekt bu biror bir “class” nusxasi. U o`zi ichiga hususiyatlar va holatlarni o`z ichiga oladi. Yanada to`ldiradigan bo`lsak insoning tana azolari, ichki kasalliklari hususiyati bo`lsa uning qandaydir vazifa basharishi bo`lsa uning holati deyiladi.
Ob'ektga yo'naltirilgan dasturlashda meros ob'ektning boshqa ob'ektlar sinflaridan bir yoki bir nechta xususiyatlarni olish qobiliyatini anglatadi . Meroslangan xususiyatlar odatda misol o'zgaruvchilari yoki a'zo funktsiyalaridir . Ushbu xususiyatlarni meros qilib olgan ob'ekt pastki sinf deb nomlanadi. Ularni meros qilib olgan ob'ekt superklass sifatida tanilgan .
Meros nima uchun ishlatiladi? Merosning maqsadi kodni birlashtirish va qayta ishlatishdir. Misol uchun, agar "avtomobil", "yuk mashinasi" va "mototsikl" ob'ektlari transport vositalarining kichik sinflari bo'lsa, ularning barchasiga tegishli bo'lgan kod transport vositasining yuqori sinfiga birlashtirilishi mumkin. Pastki sinflar ushbu kodni va unga kiritilgan kelajakdagi o'zgarishlarni avtomatik ravishda meros qilib oladi.
Single inheritance- kichik sinflar bitta yuqori sinfdan xususiyatlarni meros qilib oladi.
Multiple inheritance- kichik sinf bir nechta yuqori sinfga ega bo'lishi va ularning barchasidan meros bo'lib o'tishi mumkin.
Multilevel inheritance- kichik sinf o'z kichik sinflariga ega bo'lishi mumkin. Boshqacha qilib aytadigan bo'lsak, supersinfning o'zi boshqa kichik sinflar uchun yuqori sinf bo'lishi mumkin.
Hierarchical inheritance- asosiy sinf pastki sinflarning ko'p darajalari uchun asosiy yuqori sinf vazifasini bajaradi.
Hybrid inheritance - bir yoki bir nechta boshqa meros turlarining kombinatsiyasi.
Polimorfizm ob'ektga yo'naltirilgan dasturlashning (OOP) asosiy tushunchalaridan biri bo'lib , biror narsa bir nechta turli shakllarda sodir bo'ladigan vaziyatlarni tavsiflaydi. Kompyuter fanida polimorfizm bir xil interfeys orqali har xil turdagi ob'ektlarga kirish mumkin bo'lgan tushunchani tavsiflaydi. Har bir tur ushbu interfeysning o'ziga xos mustaqil amalga oshirilishini ta'minlashi mumkin.
Polimorfizmning har xil turlari
Java 2 turdagi polimorfizmni qo'llab-quvvatlaydi:
Boshqa ko'plab OOP tillari singari, Java ham bir xil nomdan foydalanadigan bir sinf ichida bir nechta usullarni amalga oshirish imkonini beradi. Biroq, Java usuli haddan tashqari yuklash deb ataladigan boshqa parametrlar to'plamidan foydalanadi va polimorfizmning statik shaklini ifodalaydi.
Parametrlar to'plami quyidagi uchta mezondan kamida bittasida farq qilishi kerak:
Ular turli xil parametrlarga ega bo'lishi kerak, bir usul 2 ta, ikkinchisi esa 3 ta parametrni qabul qiladi.
Parametrlar turlari har xil bo'lishi kerak, ulardan biri Stringni , ikkinchisi esa Longni qabul qiladi
Ular parametrlarni boshqa tartibda kutishlari kerak. Masalan, bitta usul String va Long ni, ikkinchisi esa Long va String ni qabul qiladi . Bunday ortiqcha yuklash tavsiya etilmaydi, chunki bu APIni tushunishni qiyinlashtiradi
Ko'pgina hollarda, bu haddan tashqari yuklangan usullar boshqacha, ammo juda o'xshash funksionallikni ta'minlaydi.
Turli xil parametrlar to'plami tufayli har bir usul turli xil imzoga ega . Ushbu imzo kompilyatorga qaysi usulni chaqirish kerakligini aniqlash imkonini beradi va uni usul chaqiruviga bog'laydi. Ushbu yondashuv mashhur bo'lib, u statik bog'lanish yoki statik polimorfizm sifatida tanilgan.
Dinamik polimorfizm
Polimorfizmning bu shakli kompilyatorga bajarilgan usulni aniqlashga imkon bermaydi. JVM buni ish vaqtida bajarishi kerak .
Meros ierarxiyasida kichik sinf o'zining yuqori sinfining usulini bekor qilishi mumkin, bu kichik sinfni ishlab chiquvchiga ushbu usulning xatti-harakatlarini sozlash yoki to'liq almashtirish imkonini beradi.
Bu ham polimorfizm shaklini yaratadi. Super va kichik sinflar tomonidan amalga oshirilgan ikkala usul ham bir xil nom va parametrlarga ega. Biroq, ular turli funktsiyalarni ta'minlaydi.