Mavzu: Abstrakt sinflar, Encapsulation Reja: Abstrakt sinflar
Download 21.49 Kb.
|
Abstrakt sinflar, Encapsulation
- Bu sahifa navigatsiya:
- Abstrakt sinf mavhum va mavhum bolmagan usullarning aralashmasiga ega bolishi mumkin.
- Abstrakt darslarning maqsadi
Abstrakt usullar
Abstrakt usullar faqat mavhum sinflar tomonidan qo'llanilishi uchun mo'ljallangan. Mavhum usullar tanasiz usullardir. Abstrakt sinfda ham mavhum usullar, ham oddiy usullar bo'lishi mumkin. Usulni abstrakt deb e'lon qilishda biz usul deklaratsiyasi oldiga abstrakt kalit so'z qo'shamiz va usul nuqtali vergul (;) bilan tugaydi . Mana Java abstrakt usuli misoli: umumiy mavhum sinf Shaxs { ommaviy abstrakt void myJob(); } Mavhum usulning tanasi yoki amalga oshirilishi yo'q. Faqat kichik sinflar tomonidan amalga oshiriladigan usulning imzolari mavjud. Agar sinfda mavhum usul bo'lsa, butun sinf mavhum sinf sifatida e'lon qilinishi kerak. Abstrakt sinfdagi barcha usullar mavhum usullar bo'lishi shart emas. Abstrakt sinf mavhum va mavhum bo'lmagan usullarning aralashmasiga ega bo'lishi mumkin. Mavhum sinfning kichik sinflari unga mos keladigan mavhum supersinfning barcha mavhum usullarini amalga oshirishi (bekor qilishi) shart. Superklassning mavhum bo'lmagan usullari xuddi super kalit so'z yordamida meros qilib olinadi. Agar kerak bo'lsa, ular ham bekor qilinishi mumkin. Mana, "Shaxs" mavhum sinfining "O'qituvchi" kichik sinfiga misol: umumiy sinf o'qituvchisi kengaytiradi Shaxs { ommaviy abstrakt bekor myJob(){ System.out.println("Mening ishim - o'qituvchilik"); }} “O‘qituvchi” kichik sinfi o‘zining “Shaxs” mavhum superklassidan myJob() mavhum usulini qanday amalga oshirishi kerakligiga e’tibor bering. Agar mavhum sinfning kichik sinfi o'zining yuqori sinfining barcha mavhum usullarini amalga oshirishi shart bo'lmasa, pastki sinf ham mavhum sinf bo'ladi. Abstrakt darslarning maqsadi Mavhum sinflarning asosiy maqsadi to'liq amalga oshirilishini yaratish uchun ularning pastki sinflari tomonidan kengaytirilishi kerak bo'lgan asosiy sinflar sifatida ishlashdir. Misol uchun, bizda myJob() usuli bo'lgan supersinf odami bor va kichik sinflar O'qituvchi, Rassom, Qo'shiqchi va boshqalarga o'xshaydi. Har bir insonning ishi turli kasblarga to'g'ri kelishi bir xil bo'lmagani uchun, bu usulni amaliyotda qo'llashdan foyda yo'q. ota-onalar sinfi. Buning sababi shundaki, har bir kichik sinf/bolalar sinfi ushbu usulni amalga oshirish tafsilotlarini berish uchun uni bekor qilishi kerak, masalan, O'qituvchi sinf ushbu usulda "O'qitish" ni bajaradi va Painter sinfi "Rasm" va hokazo. Shunday qilib, biz barcha Person bolalar sinflari ushbu myJob() usulini bekor qilishlari kerakligini bilsak, bu usulni ota-sinfda qo'llashning ma'nosi yo'q. Shunday qilib, ushbu usulni mavhum qilish munosib tanlov bo'ladi. Ushbu usulni mavhum qilish orqali biz barcha kichik sinflar uchun ushbu usulni amalga oshirishni majburiy qilib qo'ydik; aks holda biz kompilyatsiya xatosiga duch kelamiz. Usul mavhum bo'lsa, biz ota-sinfda biron bir usulni qo'llashimiz shart emas. Person klassi mavhum usulga ega bo'lganligi sababli, bu sinfni abstrakt deb e'lon qilishingiz kerak. Har bir insonning ishi bo'lishi kerak; shuning uchun bu usulni mavhum qilish orqali biz bolalar sinfiga ushbu usulni amalga oshirish tafsilotlarini berishni majburiy qilib qo'ydik. Shunday qilib, biz har bir odamning ish joyiga ega bo'lishini ta'minladik. Download 21.49 Kb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling