Obyektga yo‘naltirilgan dаsturlаsh (oyd)


Download 60.5 Kb.
bet3/4
Sana18.06.2023
Hajmi60.5 Kb.
#1594535
1   2   3   4
Bog'liq
1352529347 34707

OYPda polimorfizm. Obyektlarga mos turdagi qiymatlarni berishdagi turlar moslashuvi protsedura va funksiyalarga parametrlarni berishda ham saqlanib qoladi. Obyekt turidagi formal parametrga o`z turidagi yoki shu turdan hosil bo`lgan turdagi faktik parametrlarni berish mumkin. Obyektlarning bunday muvofiqlashuv xususiyatiga polimorfizm deyiladi. Misol tariqasida ekranga belgi yoki satrni chop qiluvchi obyektlarni ko`ramiz.
...
Biz oldindan barcha obyektlarda PRINT metodini aniqlagan edik. Polimorf obyektni aniqlaydigan protsedurada faqat bitta yozuvi bor. Lekin tashqi ko`rinishi bo`yicha to`g`ri bo`lsa ham, bu misol to`g`ri ishlamaydi. Faktik parametr turi qanday bo`lishiga qaramasdan faqat OBJPOS obyektidagi PRINT ishlaydi, chunki obyektlarda statik metodlar ishlatilgan.
Statik metodlar. Metodlarning bunday ishlanishiga sabab, ularga mos keluvchi ko`rsatgichlar kompilatsiya paytida aniqlanadi. Kompilator tomonidan statik metodlar qayta ishlovi xuddi statik o`zgaruvchilar ustida bajariladigan kabi amalga oshiriladi.
Qandaydir iyerarxiyani hosil qiluvchi obyektlar metodlari ustidagi kompilator bajaradigan ishi quyidagilardan iborat:
Metod chaqirilishida kompilator shu metodni chaqiruvchi obyekt turini aniqlaydi.
Tur aniqlangandan keyin kompilator shu obyekt turi chegarasida metodni izlaydi. Metodni topgandan keyin unga chaqiruvni amalga oshiradi.
Agar obyekt turi chegarasida metod topilmasa, kompilator shu turni hosil qilgan bevosita ajdod obyektdan metodni izlaydi va topilgan holda unga bog`lanish o`rnatadi.
Agar bevosita ajdodda ham metod topilmasa, undan yuqoridagi ajdod obyektga o`tiladi va hokazo. Hech bir obyektda metod topilmasa, xato haqida xabar beriladi.

Bu amallar bajarilishidan quyidagi muhim xossa kelib chiqadi: agar ajdod obyektlardagi metod boshqa metodlarga murojaat qilinadigan bo`lsa, garchi avlod obyekt ham shunday metodlarga ega bo`lsa ham aynan shu ajdod obyekt metodlari ishlaydi.


Yuqoridagi misolga nisbatan kompilator 1 va 2 amallari qo`llaniladi va har qanday murojaatda ham ObjPos.Print metodi amal qiladi. Bu misolni to`g`ri ishlashi uchun Print metodi virtual bo`lishi kerak.

Download 60.5 Kb.

Do'stlaringiz bilan baham:
1   2   3   4




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling