Middle
Nima ichki sinflar?
sobes.tech AI
AIdan javob
Ichki sinf — bu boshqa sinf ichida aniqlangan sinf.
Java'da ichki sinflar turlari:
-
Statik ichki sinflar (Static Nested Classes):
- Tashqi sinfdan uning nusxasi bo'lmasdan foydalanish mumkin.
- Tashqi sinfning statik bo'lmagan maydonlari va metodlariga to'g'ridan-to'g'ri kirishmaydi.
statickalit so'zi bilan e'lon qilinadi.
-
Ichki sinflar (Inner Classes):
- A'zo ichki sinflar (Member Inner Classes):
- Tashqi sinf a'zolari darajasida e'lon qilinadi.
- Tashqi sinfning barcha a'zolariga (xususiylar ham) kirish imkoniyatiga ega.
- O'z nusxasini yaratish uchun tashqi sinfning nusxasi kerak.
- Mahalliy ichki sinflar (Local Inner Classes):
- Metod, konstruktor yoki boshlang'ich blok ichida aniqlanadi.
- Faqat shu metod/blok doirasida ko'rinadi.
- Tashqi kontekstning
finalyoki amaldafinalbo'lgan mahalliy o'zgaruvchilariga kirish imkoniyatiga ega.
- Noma'lum ichki sinflar (Anonymous Inner Classes):
- Nomi bo'lmagan sinflar.
- Interfeysni yoki sinfni darhol amalga oshirish uchun ishlatiladi.
- Bir operatsiyada aniqlanadi va instansiyalanadi.
- A'zo ichki sinflar (Member Inner Classes):
Statik ichki sinf misoli:
class OuterClass {
private static String msg = "Hello from Outer";
static class StaticNestedClass {
public void display() {
// Tashqi sinfning statik a'zolariga kirish mumkin
System.out.println(msg);
}
}
}
// Foydalanish
// OuterClass.StaticNestedClass nestedObject = new OuterClass.StaticNestedClass();
// nestedObject.display();
A'zo ichki sinf misoli:
class OuterClass {
private String msg = "Hello from Outer";
class InnerClass {
public void display() {
// Tashqi sinfning barcha a'zolariga kirish mumkin
System.out.println(msg);
}
}
}
// Foydalanish
// OuterClass outerObject = new OuterClass();
// OuterClass.InnerClass innerObject = outerObject.new InnerClass();
// innerObject.display();
Ichki sinflardan foydalanishning afzalliklari:
- Guruhlash: Mantiqan bog'liq sinflar guruhlanishi mumkin.
- Kapsüllash: Ichki sinflar tashqi sinfning xususiy a'zolariga kirish imkoniyatiga ega, bu kapsüllashni yaxshilaydi.
- O'qilishi va saqlanishi: Yordamchi sinflar asosiy sinf ichida yashiriladi.
- Samaradorlik: Kengaytirilgan va samarali ma'lumot tuzilmalarini yaratishda ishlatilishi mumkin.