Kompyuterlar, Dasturlash
Java ob'ekt modelining elementlari: mavhum sinf, interfeys
Abstrakt sinfning asosiy g'oyasi quyidagi tezisda yotadi: ba'zida tayyor darslar talab qilinmaydi, ammo "xom" shaklida. Bunday blanklarni bevosita ishlatib bo'lmaydi (misollarni yaratish).
Java-da mavhum sinf nima?
Keling, yana bir misolni ko'rib chiqaylik. Java.util paketida Java abstract class mavjud. Masalan, G'arbiy va Sharqiy Evropa, Xitoy, Shimoliy Koreya, Tailand, va hokazolarda qo'llaniladigan maxsus taqvim qo'llanilmaydi. Biroq, masalan, ma'lum bir tarixga bir necha kun qo'shib qo'yish juda foydali vazifalarga ega: bu funktsiyalar har qanday Taqvimni amalga oshirish. Siz misolni abstraktsiyadan chiqarolmaysiz.
Xulosa sinflari, Java abstrakt usullari
Misol uchun, geometrik shakllar: bir doira, to'rtburchaklar, yulduz, va hokazo. Bir nechta grafik elementlarni ishlab chiqishingiz kerak. Masalan, ularni tortadigan konteyner bor. Har bir komponentning tashqi ko'rinishi bor, shuning uchun mos keladigan usul (bo'yin deyiladi) turli shakllarda amalga oshiriladi. Biroq, har bir komponentda ko'pgina umumiy xususiyatlar mavjud: raqamlar to'rtburchakda yozilishi, rangga ega bo'lishi, ko'rinishi va ko'rinmasligi va hokazo bo'lishi kerak. Ya'ni, har bir tarkibiy qism umumiy xususiyatlarga ega bo'lgan barcha shakllar uchun ota-ona sinfini yaratishingiz kerak.
Agar sinfda mavhum usullar bo'lsa, unda sinf mavhum bo'ladi. So'zlar sinfi oldidan, abstrakt kalit so'zni qo'yishdi, metodning ustunida - ham. Ushbu usulning boshidan so'ng, nuqta-vergul qo'yish kerak. Java-da, mavhum klass misollarni keltira olmaydi. Agar biz ularni yaratishni taqiqlashni xohlasak, sinfda mavhum uslublar mavjud bo'lsa ham, sinf mavhum bo'lishi mumkin. Agar sinfda kamida bitta mavhum uslub bo'lsa, unda sinf mavhum bo'lishi kerak. Sinf mavhum, yakuniy va usul ham bo'lishi mumkin emas. Uslub mavhum, xususiy, statik, mahalliy bo'lishi mumkin emas. Vorislar sinfini mavhum deb e'lon qilishlari va ularning misollarini yaratish uchun ular ota-onalarning abstrakt usullarini amalga oshirishlari kerak. Sinf o'z mavhum uslublaridan foydalanishi mumkin.
Misol:
- Xulosa sinf AClass {
- Ommaviy mavhum void usuli (int a);
- }
- Class BClass kengaytiradi AClass {
- Public void usuli (int a) {
- // tanasi
- }
Mavhum sinf tipidagi o'zgaruvchilarga ruxsat beriladi. Ular bu sinfning mavhum bo'lmagan avlodiga murojaat qilishlari mumkin yoki nol bo'ladi.
Java interfeysi - bir nechta merosga muqobil
Java-da bir nechta meros yo'q, chunki u erda muayyan muammolar mavjud. Sinf bir necha sinflardan meros olmaydi. Lekin u bir nechta interfeyslarni amalga oshirishi mumkin.
Interfeyslar va mavhum sinflar Java - tushunchalar o'xshash, lekin bir xil emas. Interfeytsiya ommaviy deb e'lon qilinishi mumkin, keyin u hamma uchun ochiqdir yoki o'zgartiruvchi ommaga ko'rsatilmaydi, keyin interfeys faqat paket ichida mavjud. Kalit so'z sarlavhasi talab qilinmaydi, chunki interfeys allaqachon mavhum bo'lgan, ammo siz buni belgilashingiz mumkin.
Interfeys deklaratsiyasi
U bir nom bilan boshlanadi va avvalo umumiy kalit so'z, so'ngra so'z interfeysi bo'lishi mumkin. So'ngra so'z kengayib boradi va bu meros bo'lib o'tgan interfeyslarni numaralandırılabilir. Bu erda takrorlashlarga yo'l qo'yilmaydi va meros munosabatlarining davriy ravishda bog'liqligi ham mumkin emas. Keyinchalik interfeysning tanasi keladi, uning qismlari qotiriladi. Element maydonlar interfeys tanasida e'lon qilinadi: doimiy joylar va mavhum usullar. Barcha maydonlar ochiq yakuniy statik bo'lib, barcha modifikatorlar ixtiyoriy. Barcha uslublar ommaviy mavhum hisoblanadi - bu modifikatorlar ham aniqlanishi mumkin. Endi abstrakt sinf va Java interfeysi orasidagi farq haqida gap boradi.
- AI umumiy interfeysi B, C, D {
- // tanasi
- }
Sinfni interfeysning merosxo'ri deb e'lon qilish uchun kalit so'zni ishlatish kerak:
- Sinf AClass BI, CI, DI {
Ya'ni, interfeysning nomi bajarilganidan keyin sinf deklaratsiyasida ko'rsatilgan bo'lsa, u holda sinf uni ijro etadi. Bu sinfning merosxo'rlari o'zlarining elementlarini meros qilib olishadi, shuning uchun ular buni amalga oshiradilar.
Interfeys turidagi o'zgaruvchilar ham ruxsat etiladi. Ushbu interfeysni amalga oshiruvchi sinfning turiga yoki nullga murojaat qilishlari mumkin. Bunday o'zgaruvchilar Ob'ektlar sinfining barcha elementlariga ega, chunki ob'ektlar sinflardan yaratiladi va ular o'z navbatida Ob'ektlar sinfidan meros bo'lib olinadi.
Ushbu maqolada biz Java ob'ekt modelining ayrim elementlariga - abstrakt sinflarga, mavhum usullarga, interfeyslarga qaradik.
Similar articles
Trending Now