…
}
}
Yuqoridagi
misolda
Xotira
klassi
Kompyuter
klassini ichki klassi xisoblanadi. Ichki klass,
boshqa klass a’zolari singari, u e’lon qilingan qamrov darajasida klass a’zolariga murojaat qilishi
mumkin. O’z navbatida ichki klass u e’lon qilingan klass yoki metod a’zosi xisoblanadi.
Masalan:
class Kompyuter{
class Xotira{
…
}
void amalBajarish(){
…
}
}
Yuqo ridagi misolda
Xotira
ichki klassi
Kompyuter
klassi a’zosi bo’lgan
amalBajarish()
metodini chaqirishi mumkin. Yoki
amalBajarish()
metodi
Xotira
klassi andozasi asosida
obyekt
yaratishi mumkin.
Boshqa klasslar singari ichki klasslar yuqori darajali klasslar tomonidan murojaat qilinishi
xam mumkin. Lekin ushbu murojaatni amalga oshirish uchun murojaat qiluvchi
ichki klass
joylashgan yuqori darajali klassga ega bo’lishi kerak. Masalan,
Kompyuter
klassi tashqarisidan
Xotira
klassi andozasi asosida obyekt yaratish uchun
Kompyuter
obyektiga ega bolish kerak.
Kompyuter k = new Kompyuter();
Kompyuter.Xotira x = k.new Xotira();
Yuqoridagi misolning birinchi qatorida Kompyuter qiymatini qabul qiluvchi
k
o’zgaruvchisiga yangi Kompyuter obyekti yaratilib biriktirilgan. Ikkinchi qatorda Kompyuter
klassining ichki klassi bo’lgan Xotira qiymatini qabulqiluvchi
x
o’zgaruvchisiga yangi Xotira
obyekti yaratilib biriktirilgan.
Ichki klassni lokal a’zo sifatida metod ichida xam e’lon qilish mumkin. Masalan:
class Kompyuter
{
void amalBajarish()
{
class Xotira()
{
…
}
}
}
Yuqoridagi misolda Xotira klassi amalBajarish() metodining lokal a’zosi sifatida metodning
boshqa a’zolariga yoki Kompyuter klassining a’zolariga murojaat qilishi mumkin. Ammo,
Kompyuter klassining a’zolari Xotira klassi metodning lokal a’zosi bo’lganligi sababli unga
murojaat qila olmaydi.
Dostları ilə paylaş: