Sobes.tech
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.
    • static kalit 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 final yoki amalda final bo'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.

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.