Sobes.tech
Junior — Middle

Ի՞նչ տարբերություն կա ներսի դասի և ներսի դասի միջև ծրագրավորման մեջ։

sobes.tech AI

Պատասխան AI-ից

Java-յում (և Android-ում) մնացած դաս է ցանկացած դաս, որը հայտարարվում է մյուս դասի ներսում։ Մնացած դասերը լինում են երկու տեսակի՝

  1. Ստատիկ մնացած դաս (static nested class) — հայտարարվում է static մոդիֆիկատորով։ Չի ունենա ուղիղ մուտք դեպի արտաքին դասի ոչ-ստատիկ անդամները։
  2. Ներքին դաս (inner class) — մնացած դաս առանց static մոդիֆիկատորի։ Կապված է արտաքին դասի օրինակին և ունի մուտք դեպի նրա ոչ-ստատիկ դաշտեր և մեթոդներ։

Օրինակ՝

class Outer {
    private int outerField = 10;

    static class StaticNested {
        void print() {
            // Չի կարող ուղիղ մուտք գործել outerField
            System.out.println("Ստատիկ մնացած դաս");
        }
    }

    class Inner {
        void print() {
            // Կարող է մուտք գործել outerField
            System.out.println("Ներքին դաս, outerField = " + outerField);
        }
    }
}

Հիմնական տարբերությունը այն է, որ ներքին դասը կապված է արտաքին դասի օբյեկտի հետ և կարող է մուտք գործել նրա ոչ-ստատիկ անդամները, իսկ ստատիկ մնացած դասը — ոչ։