KompyuterlarDasturlash

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. Ammo bo'yoq usuli haqida nima desa bo'ladi? Axir, ota-ona sinfida vizual tasavvur mavjud emas. Bo'yoq usulini har bir sinfda mustaqil ravishda e'lon qilsangiz, siz qaysi komponentni qayta ishlashni tahlil qilishingiz va so'ngra quyish jarayonini bajarishingiz kerak bo'ladi. Shu sababli, usul ota-sinfda mavhum deb e'lon qilinishi kerak: uskuna sarlavhasini tanadan belgilash. Va har bir toifadagi sinf o'z tanasini tasvirlaydi. Java'da mavhum sinf mavhum uslublarni o'z ichiga olishi mumkin.

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

 

 

 

 

Newest

Copyright © 2018 uz.atomiyme.com. Theme powered by WordPress.