Sobes.tech
Junior — Middle
92

Java-да статикалық ішкі класс пен ішкі класс арасындағы айырмашылық неде?

AI-дан жауап

sobes.tech AI

Java-да статикалық ішкі класс — бұл басқа класс ішінде жарияланған, static модификаторымен белгіленген класс. Ол сыртқы кластың статикалық емес мүшелеріне қол жеткізе алмайды және сыртқы кластың объектісін құруды талап етпейді.

Ішкі (статикалық емес) класс сыртқы кластың нақты бір объектісіне байланысты және оның статикалық емес өрістері мен әдістеріне қол жеткізе алады. Ішкі класты құру үшін сыртқы кластың объектісі қажет.

Мысал:

class Outer {
    int x = 10;

    static class StaticNested {
        void print() {
            System.out.println("Статикалық ішкі класс");
            // x-ке қол жеткізу жоқ
        }
    }

    class Inner {
        void print() {
            System.out.println("Ішкі класс, x = " + x);
        }
    }
}

// Қолдану:
Outer.StaticNested sn = new Outer.StaticNested();
sn.print();

Outer outer = new Outer();
Outer.Inner inner = outer.new Inner();
inner.print();

Осылайша, статикалық ішкі класс сыртқы кластан тәуелсіз, ал ішкі класс сыртқы кластың нақты бір объектісіне тығыз байланысты.