Sobes.tech
Middle

Ի՞նչ են ներքին դասերը։

sobes.tech AI

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

Ներքին դասը՝ դա դաս է, որը սահմանված է մյուս դասի ներսում:

Java- ի ներսում դասերի տեսակները՝

  • Ստատիկ ներքին դասեր (Static Nested Classes):

    • հասանելի են արտաքին դասից առանց նրա օրինակին:
    • չունեն անմիջական հասանելիություն արտաքին դասի ոչ ստատիկ դաշտերին և մեթոդներին:
    • հայտարարում են static բանալի բառով:
  • Ներքին դասեր (Inner Classes):

    • Անդամ-Ներքին դասեր (Member Inner Classes):
      • հայտարարում են արտաքին դասի անդամների մակարդակով:
      • ունեն հասանելիություն բոլոր անդամներին՝ ներառյալ՝ մասնավորներին:
      • պահանջում է արտաքին դասի օրինակ՝ իր օրինակին ստեղծելու համար:
    • Տեղական ներքին դասեր (Local Inner Classes):
      • սահմանվում են մեթոդի, կոնստրուկտորի կամ ինիցիալիզացիոն բլոկի ներսում:
      • տեսանելի են միայն այդ մեթոդի/բլոկի սահմաններում:
      • ունեն հասանելիություն final կամ արդյունավետ final տեղական փոփոխականներին:
    • Անանուն ներքին դասեր (Anonymous Inner Classes):
      • անվան բացակայությամբ դասեր:
      • օգտագործվում են օբյեկտներ ստեղծելու համար՝ որոնք անմիջապես իրականացնում են ինտերֆեյսը կամ ընդլայնում են դասը:
      • սահմանվում և ինստանցիացվում են միաժամանակ:

Նմուշ՝ ստատիկ ներքին դասի:

class OuterClass {
    private static String msg = "Hello from Outer";

    static class StaticNestedClass {
        public void display() {
            // կարող է հասանելի լինել արտաքին դասի ստատիկ անդամներին
            System.out.println(msg);
        }
    }
}
// Օգտագործում
// OuterClass.StaticNestedClass nestedObject = new OuterClass.StaticNestedClass();
// nestedObject.display();

Նմուշ՝ անդամ-ներքին դասի:

class OuterClass {
    private String msg = "Hello from Outer";

    class InnerClass {
        public void display() {
            // կարող է հասանելի լինել բոլոր անդամներին
            System.out.println(msg);
        }
    }
}
// Օգտագործում
// OuterClass outerObject = new OuterClass();
// OuterClass.InnerClass innerObject = outerObject.new InnerClass();
// innerObject.display();

Ներքին դասերի օգտագործման առավելությունները՝

  • Խմբավորում: Լոգիկորեն կապված դասերը կարող են խմբագրվել:
  • Անկախություն: Ներքին դասերը կարող են հասանելիություն ունենալ արտաքին դասի մասնավոր անդամներին՝ ապահովելով ավելի լավ ամփոփում:
  • Կարդալություն և սպասարկում: Թաքցնում են օգնական դասերը հիմնական դասի ներսում:
  • Արդյունավետություն: Կարող են օգտագործվել ավելի կոմպակտ և արդյունավետ տվյալների կառուցվածքներ ստեղծելու համար: