Junior
Ichki sinflar nima?
sobes.tech AI
AIdan javob
Ichki sinflar boshqa sinf ichida e'lon qilingan sinflardir. Ular ikki asosiy turga bo'linadi: statik ichki sinflar (sinflarning statik a'zolari) va ichki sinflar (statik bo'lmagan a'zolar).
Statik ichki sinflar:
- Tashqi sinf bilan bog'liq, uning nusxasi bilan emas.
- Faqat tashqi sinfning statik a'zolariga murojaat qilishlari mumkin.
- Tashqi sinf nusxasidan holda yaratilishi mumkin.
Ichki sinflar:
- Tashqi sinf nusxasi bilan bog'liq.
- Tashqi sinfning barcha a'zolariga (statik va statik bo'lmaganlar) murojaat qilishlari mumkin, jumladan private.
- Ularni yaratish uchun tashqi sinf nusxasi talab qilinadi.
Foydalanish misollari:
- Guruhlash: Mantiqiy bog'liq sinflar kodning o'qilishi va tashkilotini yaxshilash uchun birlashtirilishi mumkin.
- Kapsüllash: Ichki sinflar tashqi sinfning private a'zolariga kirish huquqiga ega, bu esa amalga oshirish tafsilotlarini kapsüllash imkonini beradi.
- Voqealar tinglovchilari (Java): Ko'pincha nomli ichki sinflar yaratish uchun ishlatiladi.
- Yordamchi sinflar: Faqat tashqi sinf tomonidan ishlatiladigan kichik sinflar.
// Statik ichki sinf misoli
class OuterClass {
static int outerStaticField = 1;
int outerInstanceField = 2;
static class StaticNestedClass {
void display() {
System.out.println("Tashqi statik maydon: " + outerStaticField);
// outerInstanceField ga to'g'ridan-to'g'ri kirish mumkin emas
}
}
}
// Ichki sinf misoli
class AnotherOuterClass {
int outerField = 10;
class InnerClass {
void display() {
System.out.println("Tashqi maydon: " + outerField); // Tashqi sinf maydoniga kirish
}
}
}
Taqqoslash jadvali:
| Xususiyat | Statik ichki sinf | Ichki sinf |
|---|---|---|
| Aloqa | Tashqi sinf bilan | Tashqi sinf nusxasi bilan |
| Tashqi a'zolarga kirish | Faqat statik | Barcha a'zolar (private ham) |
| Nusxa talab qilinadi | Yo'q | Ha |
| Statik a'zolarni o'z ichiga olishi mumkin | Ha | Yo'q (faqat konstantalar) |