Junior
Ի՞նչ են ներքին դասերը։
sobes.tech AI
Պատասխան AI-ից
Ներքին դասեր (Nested Classes) — դա դասեր են, որոնք սահմանված են մյուս դասի ներսում։ Դրանք բաժանվում են երկու հիմնական տեսակների.
-
Ստատիկ ներքին դասեր (Static Nested Classes): Դրանք նման են արտաքին դասի ստատիկ անդամներին։ Դրանք չունեն ուղիղ հասանելիություն արտաքին դասի ոչ ստատիկ անդամներին։ Ստեղծվում են առանց արտաքին դասի օրինակ ունենալու։
Java-ում օրինակ՝
class OuterClass { static int outerStaticField; int outerInstanceField; static class StaticNestedClass { void accessOuterStatic() { // Հասանելիություն OuterClass-ի ստատիկ անդամին int value = OuterClass.outerStaticField; } // Ունեն ուղիղ հասանելիություն outerInstanceField-ին // void accessOuterInstance() { // int value = outerInstanceField; // Կոմպիլյացիոն սխալ // } } } -
Ներքին դասեր (Inner Classes): Նեստատիկ։ Ունեն հասանելիություն բոլոր անդամներին՝ ներառյալ ստատիկ և նեստատիկ, նույնիսկ՝ մասնավոր։ Ներքին դասի օրինակը կապված է արտաքին դասի օրինակին։ Ստեղծվում է արտաքին դասի օրինակով։
Java-ում օրինակ՝
class OuterClass { static int outerStaticField; int outerInstanceField; class InnerClass { void accessOuterMembers() { // Հասանելիություն արտաքին դասի ստատիկ և նեստատիկ անդամներին int staticValue = OuterClass.outerStaticField; int instanceValue = outerInstanceField; } } }
Կան նաև հատուկ տեսակներ՝
- Տեղական դասեր (Local Classes): Դրանց սահմանում են բլոկի ներսում (օրինակ՝ մեթոդ, կոնստրուկտոր կամ ինիցիալիզացիոն բլոկում): Դրանք հասանելի են միայն այդ բլոկում։
- Անանուն դասեր (Anonymous Classes): Անուն չունեն։ Օգտագործվում են միանգամյա կիրառման համար՝ ինտերֆեյսի կամ դասի ընդլայնման։ Դրանք սահմանվում և ստեղծվում են միաժամանակ։
Ներքին դասերի առավելությունները:
- Հոգեկան խմբավորում: Դրանք թույլ են տալիս խմբավորել դասեր, որոնք տրամաբանականորեն կապված են, ինչը բարելավում է կոդի ընթեռնելիությունը։
- Զտում: Կարող են հասանելիություն ունենալ արտաքին դասի մասնավոր անդամներին՝ ապահովելով ավելի ուժեղ զտում։
- Հեշտ կոդ: Օգնում են գրել կոդ՝ օգտագործվող միայն մեկ այլ դասի կողմից։
Հայտարարություններ QA ավտոմատացման մեջ:
- Page Object Model: Ներքին կամ ստատիկ ներքին դասերը կարող են օգտագործվել էջի տարրերի կազմակերպման համար՝ օրինակ՝ բաժիններ, մոդալ պատուհաններ՝ հիմնական Page Object դասի ներսում։
- Իրադարձությունների մշակողներ / Callback-ներ: Անանուն կամ տեղական դասերը կարող են օգտագործվել թեստեր իրականացնելու համար՝ callback-ներ կամ իրադարձությունների մշակողներ օգտագործելով՝ օրինակ՝ UI տարրերի կամ լսողների հետ աշխատելիս։
- Կոնֆիգուրացիոն դասեր: Ստատիկ ներքին դասերը կարող են պարունակել կոնստանտներ կամ կոնֆիգուրացիոն պարամետրեր՝ հատուկ արտաքին դասի համար։