Sobes.tech
Junior — Middle

Proqramlaşdırmada daxili sinif və iç içə sinif arasındakı fərq nədir?

sobes.tech Süni İntellekt

AI-dan cavab

Java-da (və Android-də) daxili sinif hər hansı digər sinif daxilində elan olunan hər hansı sinifdir. Daxili siniflər iki növə bölünür:

  1. Statik daxili sinif (static nested class)static modifieri ilə elan olunur. Xarici sinifin statik olmayan üzvlərinə birbaşa daxil olmur.
  2. Daxili sinif (inner class)static modifieri olmayan daxili sinif. Xarici sinifin nümunəsinə bağlıdır və onun statik olmayan sahələrinə və metodlarına daxil ola bilər.

Nümunə:

class Outer {
    private int outerField = 10;

    static class StaticNested {
        void print() {
            // outerField-ə birbaşa müraciət etmək mümkün deyil
            System.out.println("Statik daxili sinif");
        }
    }

    class Inner {
        void print() {
            // outerField-ə müraciət etmək olar
            System.out.println("Daxili sinif, outerField = " + outerField);
        }
    }
}

Əsas fərq odur ki, daxili sinif xarici sinifin obyekti ilə əlaqəlidir və onun statik olmayan üzvlərinə daxil ola bilər, statik daxili sinif isə edə bilməz.