Middle
Ի՞նչ են ներքին դասերը։
sobes.tech AI
Պատասխան AI-ից
Ներքին դասը՝ դա դաս է, որը սահմանված է մյուս դասի ներսում:
Java- ի ներսում դասերի տեսակները՝
-
Ստատիկ ներքին դասեր (Static Nested Classes):
- հասանելի են արտաքին դասից առանց նրա օրինակին:
- չունեն անմիջական հասանելիություն արտաքին դասի ոչ ստատիկ դաշտերին և մեթոդներին:
- հայտարարում են
staticբանալի բառով:
-
Ներքին դասեր (Inner Classes):
- Անդամ-Ներքին դասեր (Member Inner Classes):
- հայտարարում են արտաքին դասի անդամների մակարդակով:
- ունեն հասանելիություն բոլոր անդամներին՝ ներառյալ՝ մասնավորներին:
- պահանջում է արտաքին դասի օրինակ՝ իր օրինակին ստեղծելու համար:
- Տեղական ներքին դասեր (Local Inner Classes):
- սահմանվում են մեթոդի, կոնստրուկտորի կամ ինիցիալիզացիոն բլոկի ներսում:
- տեսանելի են միայն այդ մեթոդի/բլոկի սահմաններում:
- ունեն հասանելիություն
finalկամ արդյունավետfinalտեղական փոփոխականներին:
- Անանուն ներքին դասեր (Anonymous Inner Classes):
- անվան բացակայությամբ դասեր:
- օգտագործվում են օբյեկտներ ստեղծելու համար՝ որոնք անմիջապես իրականացնում են ինտերֆեյսը կամ ընդլայնում են դասը:
- սահմանվում և ինստանցիացվում են միաժամանակ:
- Անդամ-Ներքին դասեր (Member 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();
Ներքին դասերի օգտագործման առավելությունները՝
- Խմբավորում: Լոգիկորեն կապված դասերը կարող են խմբագրվել:
- Անկախություն: Ներքին դասերը կարող են հասանելիություն ունենալ արտաքին դասի մասնավոր անդամներին՝ ապահովելով ավելի լավ ամփոփում:
- Կարդալություն և սպասարկում: Թաքցնում են օգնական դասերը հիմնական դասի ներսում:
- Արդյունավետություն: Կարող են օգտագործվել ավելի կոմպակտ և արդյունավետ տվյալների կառուցվածքներ ստեղծելու համար: