Sobes.tech
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)