Sobes.tech
Junior — Middle

Dasturlashda ichki sinf va ichki sinf o'rtasidagi farq nima?

sobes.tech AI

AIdan javob

Java (va Android) ichki sinf ichki sinf deb nomlangan har qanday sinf bo‘lib, u boshqa sinf ichida e’lon qilinadi. Ichki sinflar ikki turga bo‘linadi:

  1. Statik ichki sinf (static nested class)static modifikatori bilan e’lon qilinadi. U tashqi sinfning statik bo‘lmagan a’zolariga to‘g‘ridan-to‘g‘ri kirish imkoniga ega emas.
  2. Ichki sinf (inner class)static modifikatori bo‘lmagan ichki sinf. U tashqi sinfning ob’ekti bilan bog‘langan va uning statik bo‘lmagan maydonlari va metodlariga kirish huquqiga ega.

Misol:

class Outer {
    private int outerField = 10;

    static class StaticNested {
        void print() {
            // outerField ga to‘g‘ridan-to‘g‘ri murojaat qilish mumkin emas
            System.out.println("Statik ichki sinf");
        }
    }

    class Inner {
        void print() {
            // outerField ga murojaat qilish mumkin
            System.out.println("Ichki sinf, outerField = " + outerField);
        }
    }
}

Shunday qilib, asosiy farq shundaki, ichki sinf tashqi sinf ob’ekti bilan bog‘langan va uning statik bo‘lmagan a’zolariga kirish imkoniga ega, statik ichki sinf esa ega emas.