Java 2se dasturlash tili


Ostki klasslar va irsiyat



Yüklə 0,65 Mb.
Pdf görüntüsü
səhifə19/42
tarix07.01.2024
ölçüsü0,65 Mb.
#203218
1   ...   15   16   17   18   19   20   21   22   ...   42
Java 2se dasturlash tili

Ostki klasslar va irsiyat 
Java dasturlash tilida klasslar ierarxiyada joylashadi. 
extend
kalit so’zi yordamida bir klass 
ikkinchi klassni ostki klassi sifatida e’lon qilinishi, ya’ni kengaytirishi mumkin. Ostki klass 
yuqori klass a’zolarini, ya’ni o’zgaruvchilari va metodlarini, meros qilib oladi va ularni o’zini 
a’zolari singari ishlatishi mimkin. 
Masalan: 
public class Daraxt 

float balandlik; 
public void bargChiqarish() 



public class MevaliDaraxt extends Daraxt 

int mevalarSoni; 
public void mevaSolish() 



Yuqoridagi dasturda 
MevaliDaraxt
klassi 
Daraxt
klassini kengaytirib 
Daraxt
klassi a’zolarini 
meros qilib oladi. Endi 
MevaliDaraxt
klassi o’zi e’lon qilgan 
mevalarSoni
o’zgaruvchisi va 
mevaSolish()
metodi va 
Daraxt
klassidan meros qilib olgan 
balandlik
o’zgaruvchisi va 
bargChiqarish()
metodini a’zolari sifatida o’z ichiga oladi. 
Klass faqatgina bitta klassni kengaytirishi mumkin. Ostki klassni yana kengaytirish mumkin. 
Masalan: 
public class Olma extends MevaliDaraxt 

Date gullashVaqti; 
public void gullash() 





Ushbu dasturda 
Olma
klassi 
MevaliDaraxt
va 
Daraxt
klass a’zolarini o’z ichiga oladi. 
Yuqoridagi klass ierarxiyasi quyidagi rasmda keltirilgan: 
Klass ierarxiyasi 
Klass biror bir klassni kengaytirsa u kengaytirilayotgan klass metodlarini meros qilib oladi. 
Agar meros qilib olinayotgan metod bajarilishi to’g’ri kelmasa yoki o’zgacha bajarish kerak 
bo’lsa meros qilib olingan metodni 
qayta yaratish
mumkin. Masalan: 
public class Xisoblagich 

public float xisoblash(int a, int b) 

float c = (a+b)/2; 
return c; 


public class Kalkulyator extends Xisoblagich 

public float xisoblash(int a, int b) 

float c = (a*b)/2; 
return c; 


Yuqoridagi dasturda 
Xisoblagich
klassi 
xisoblash()
metodini e’lon qilib, ushbu metod 
qabul qilgan ikki butun sonni o’rta arifmetik qiymatini xisoblab qaytaradi. 
Kalkulyator
klassi 
Xisoblagich
klassini kengaytirib 
xisoblash()
metodini meros qilib olib uni qayta yaratadi va 
endi 
xisoblash()
metodi qabul qilgan ikki butun sonni o’rta geometrigini xisoblab beradi. 
Kalkulyator k = new Kalkulyator(); 
k.xisoblash(4,5); 
Daraxt 
MevaliDaraxt 
Olma 


Dastur kodida xisoblash metodi 10 qiymatini qaytaradi. Shuni ta’kidlab o’tish kerakki 
metodni qayta yaratayotganda metod qaytarayotgan va qabul qilayotgan qiymat turlari bir xil 
bo’lishi kerak. 
Klass ikkinchi klassni kengaytirganda u kengaytirayotgan klass metodlarini a’zo sifatida 
meros qilib oladi va meros qilib olgan metodlarni bevosita ishlatishi yoki qayta yaratishi 
mumkin. Java dasturlash tilida klasslarda 
abstrakt
metodlar mavjudki, ularni meros qilib olgan 
ostki klasslar albatta qayta yaratishi kerak bo’ladi. Abstrakt metodlar oddiy metodlardan farqi 
shundaki, ularda metod tanasi mavjud bo’lmaydi. Masalan: 
public void go() 


public abstract void go(); 
Yuqoridagi birinchi metod oddiy metod xisoblanadi. Uni tanasi mavjud bo’lib figurali 
qavslar bilan belgilanadi. Ikkinchi metod abstrakt metod xisoblanib tanaga ega bo’lmaydi. Bitta 
abstrakt metodi mavjud klass xam abstrakt klass xisoblanadi. Abstrakt klasslarni abstrakt 
bo’lmagan metodlari xam mavjud bo’lishi mumkin. Abstrakt klasslar obyekt yaratish uchun 
andoza xisoblanmaydi, balki ularni kengaytirgan, abstrakt bo’lmagan klasslar uchun meros qilib 
oladigan metodlarni qayta yaratish shartnomasi xisoblanadi. 
Masalan: 
public abstract class Avtomobil 

public abstract void tezlashish(); 
public void yurish() 

//metod tanasidagi yurish kidi 
… 


public class YukAvtomobili extends Avtomobil 

public void tezlashish() 

//yuk avtomobiliga xos tezlashish kodi 
… 



public void yukTashish() 

// yuk tashish kodi 
… 


Yuqoridagi dasturda abstrakt 
Avtomobil
klassi berilgan bo’lib uning bitta abstrakt va bitta 
oddiy metodi mavjud. 
Avtomobil
klassi uni kengaytiradigan barcha klasslarda (masalan, 
YukAvtomobili

YengilAvtomobil

tezlashish()
metodi mavjud bo’lish shartnomasini taklif 
etadi. Ya’ni 
Avtomobil
klassini kengaytirgan klass 
tezlashish()
metodini ushbu klassga xos 
amalni bajaradigan qilib qayta yaratishi kerak. Yuqoridagi misolda 
YukAvtomobili
klassi 
tezlashish()
metodini yuk avtomobillarga xos qilib qayta yaratgan. Bundan tashqari ushbu 
klassda yangi 
yukTashish()
metodi xam e’lon qilingan. 
YukAvtomobili
jami uchta metodni, ya’ni 
meros qilib olingan 
yurish()
metodi, meros qilib olingan va qayta yaratilgan 
tezlashish()
metodi va o’zida e’lon qilingan 
yukTashish()
metodi. 

Yüklə 0,65 Mb.

Dostları ilə paylaş:
1   ...   15   16   17   18   19   20   21   22   ...   42




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

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin