2 ma’ruza. Oyd bazaviy prinsiplari. Inkapsul yasiya,Vorislik, Polimorfizm tushunchalari



Yüklə 0,68 Mb.
Pdf görüntüsü
səhifə6/6
tarix23.09.2023
ölçüsü0,68 Mb.
#123162
1   2   3   4   5   6
Polimorfizm
- umumiy muloqot tili. OOPda barcha ob'ektlar bir -biri bilan ular 
tushunadigan tilda muloqot qilishi muhim. Va agar har xil ob'ektlarda "O'chirish" 
usuli bo'lsa, u aynan shunday qilishi va hamma joyda xuddi shunday yozilishi kerak. 
Bir ob'ektda "O'chirish", ikkinchisida "Yo’qotish" bo'lishi mumkin emas. 
Shu bilan birga, ob'ekt ichida usullar turli yo'llar bilan amalga oshirilishi mumkin. 
Masalan, biror narsani o'chirish - bu ogohlantirish, keyin ma'lumotlar bazasidagi 
elementni o'chirilgan deb belgilash va foydalanuvchini o'chirish uning xaridlarini 
bekor qilishni, pochta ro'yxatidan obunani bekor qilishni va sotib olish tarixini 
arxivlashni bildiradi. Voqealar boshqacha, lekin dasturchi uchun bu muhim emas. U 
faqat Delete () usuliga ega va unga ishonadi. 
2-misol. Polimorfizm 
Agar haydashni o'rgangan odam, aytaylik, VAZ 2106 VAZ 2110 yoki BMW X3 ni 
boshqarolmasa, haydash bo'yicha har qanday mashg'ulotning ma'nosi bo'lmaydi. 
Boshqa tomondan, odatda, gaz pedali tormoz pedalining chap tomonida, rulning 
o'rniga joystik bo'lgan mashinani boshqaradigan odamni tasavvur qilish qiyin. 
Gap shundaki, mashinaning asosiy boshqaruv elementlari bir xil dizayn va ishlash 
tamoyiliga ega. Haydovchi aniq biladiki, chapga burilish uchun gidravlik 
kuchaytirgich bor yoki yo'qligidan qat'i nazar, u rulni burishi kerak. 
Agar biror kishi ishdan uyga ketishi kerak bo'lsa, u qanday turdagi mashinadan 
foydalanishidan qat'i nazar, u mashina ruliga o'tirib, xuddi shunday harakatlarni 
bajaradi. Aytishimiz mumkinki, hamma mashinalar bir xil interfeysga ega va 
Agar siz interfeysni 
o'zgartirmasangiz, ob'ekt ichidagi 
biror narsani o'zgartirishingiz 
mumkin va dastur normal 
ishlashda davom etadi. 


haydovchi mashinaning mohiyatidan mavhum bo'lib, aynan shu interfeys bilan 
ishlaydi. Agar haydovchi nemis avtobanida haydashga to'g'ri kelsa, ehtimol u past 
tezlikda harakatlanadigan mashinani tanlaydi va agar yomg'irdan keyin Gorniy 
Oltoydagi uzoq maraldan qaytishi kerak bo'lsa, katta ehtimol bilan qo'shin ko'prigi 
bo'lgan UAZ bo'ladi. tanlangan. Ammo, mashinaning harakati va ichki ishlashi 
qanday amalga oshirilishidan qat'i nazar, interfeys o'zgarmaydi. 
Polimorfizm - bu bir xil interfeysli ob'ektlardan ob'ektning turi va ichki tuzilishi 
haqida ma'lumotsiz foydalanish xususiyatidir. 
Masalan, agar siz fayldan ma'lumotlarni o'qiyotgan bo'lsangiz, unda, aniqki, fayl 
oqimini amalga oshiradigan sinfda quyidagilarga o'xshash usul bo'ladi: bayt [] 
readBytes (int n); 
Aytaylik, xuddi shu ma'lumotlarni rozetkadan o'qish kerak. Soketni amalga 
oshiradigan sinfda readBytes usuli ham bo'ladi. Sizning tizimingizdagi bitta sinf 
ob'ektini boshqa sinf ob'ektiga almashtirish kifoya va natijaga erishiladi. 
Bunday holda, tizim mantig'i, ma'lumotlarning fayldan o'qilishi yoki tarmoq orqali 
qabul qilinishidan qat'i nazar, amalga oshirilishi mumkin. Shunday qilib, biz 
ma'lumotlarni qidirishning o'ziga xos ixtisosidan xulosa chiqaramiz va interfeys 
darajasida ishlaymiz. Bitta talab shundaki, ishlatiladigan har bir ob'ektda readBytes 
usuli bo'lishi kerak. 
Inkapsulyatsiya va ma’lumotlarni yashirish 
Ob'ektlardan foydalanishning asosiy afzalliklaridan biri shundaki, ob'ektga uning 
barcha atributlari va xatti -harakatlarini ko'rsatish shart emas. Ob'ektga yo'naltirilgan 
yaxshi loyihada (hech bo'lmaganda bitta yaxshi deb hisoblanadigan) ob'ekt faqat 
boshqa ob'ektlar u bilan o'zaro aloqada bo'lishi kerak bo'lgan interfeyslarni 
ko'rsatishi kerak. Ob'ektni ishlatish bilan bog'liq bo'lmagan tafsilotlar boshqa barcha 
narsalardan yashirilishi kerak. 
Inkapsulyatsiya ob'ektlarning atributlari va xatti -harakatlarini o'z ichiga olishi bilan 
belgilanadi. Ma'lumotni yashirish - bu inkapsulyatsiyaning asosiy qismi. 
Masalan, raqamlar kvadratini hisoblash uchun ishlatiladigan ob'ekt natijalarni olish 
uchun interfeysni ta'minlashi kerak. Biroq, sonlarning kvadratlarini hisoblash uchun 
ishlatiladigan atributlar va algoritmlarni so'rovchi ob'ektga taqdim etishga hojat 
yo'q. Ishonchli sinflar inkapsulyatsiyani hisobga olgan holda ishlab chiqilgan.
Interfeyslar 


Biz allaqachon ko'rdikki, interfeys ob'ektlar o'rtasidagi asosiy aloqa vositalarini 
belgilaydi. Har qanday sinfni loyihalashda ob'ektlarning to'g'ri ishga tushirilishi va 
ishlashi uchun interfeyslar ta'minlanadi. Ob'ekt tomonidan taqdim etilgan har 
qanday xatti -harakatlar, taqdim etilgan interfeyslardan biri yordamida yuborilgan 
xabar orqali chaqirilishi kerak. Agar interfeys bo'lsa, u tegishli sinf 
foydalanuvchilari ushbu sinf bilan qanday aloqada bo'lishlari haqida to'liq tavsif 
berishi kerak. Ob'ektga yo'naltirilgan dasturlash tillarining ko'pchiligida 
interfeyslarning bir qismi bo'lgan usullar ommaviy deb ta'riflanadi. 

Yüklə 0,68 Mb.

Dostları ilə paylaş:
1   2   3   4   5   6




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©genderi.org 2024
rəhbərliyinə müraciət

    Ana səhifə