Həll edilən siniflər nədir?
sobes.tech Süni İntellekt
AI-dan cavab
İç içə sinflər (Nested Classes) başqa bir sinfin içində müəyyən edilən sinflərdir. Onlar iki əsas növə bölünür:
-
Statik İç İçe Sinflər (Static Nested Classes): Xarici sinfinin statik üzvlərinə bənzəyirlər. Onlar xarici sinfinin statik olmayan üzvlərinə birbaşa daxil olmurlar. Xarici sinfin nümunəsi olmadan yaradılırlar.
Java nümunəsi:
class OuterClass { static int outerStaticField; int outerInstanceField; static class StaticNestedClass { void accessOuterStatic() { // OuterClass-ın statik üzvünə daxil olmaq int value = OuterClass.outerStaticField; } // outerInstanceField-ə birbaşa daxil olmur // void accessOuterInstance() { // int value = outerInstanceField; // Tərtib xətası // } } } -
Daxili Sinflər (Inner Classes): Statik olmayan. Onlar xarici sinfin bütün üzvlərinə, o cümlədən statik və statik olmayanlara, hətta xüsusi üzvlərə də daxil ola bilərlər. Daxili sinfin nümunəsi xarici sinfin nümunəsinə bağlıdır. Xarici sinfin nümunəsindən istifadə etməklə yaradılır.
Java nümunəsi:
class OuterClass { static int outerStaticField; int outerInstanceField; class InnerClass { void accessOuterMembers() { // OuterClass-ın statik və statik olmayan üzvlərinə daxil olmaq int staticValue = OuterClass.outerStaticField; int instanceValue = outerInstanceField; } } }
Həmçinin, xüsusi daxili sinf növləri də mövcuddur:
- Yerli Sinflər (Local Classes): Blok daxilində müəyyən edilir (məsələn, metod, konstruktor və ya başlanğıc bloku). Yalnız bu blok daxilində əlçatandır.
- Anonim Sinflər (Anonymous Classes): Adı yoxdur. Bir interfeys və ya sinifin tək istifadə üçün həyata keçirilməsini yaratmaq üçün istifadə olunur. Eyni zamanda müəyyən edilir və nümunə alınır.
İç içə sinflərin üstünlükləri:
- Məntiqi qruplama: Məntiqi baxımdan əlaqəli sinfləri qruplaşdırmağa imkan verir, bu da kodun oxunaqlığını artırır.
- İnkapulsasiya: Onlar xarici sinfin xüsusi üzvlərinə daxil ola bilərlər, bu da daha güclü inkapsulyasiya təmin edir.
- Daha sadə kod: Yalnız başqa bir sinif tərəfindən istifadə olunan sinflər üçün kod yazmağı asanlaşdırır.
QA Avtomatlaşdırmada tətbiqi:
- Page Object Model: Daxili və ya statik iç içə sinflər səhifənin elementlərini (məsələn, bölmələr, modal pəncərələr) əsas Page Object sinfi daxilində təşkil etmək üçün istifadə edilə bilər.
- Hadisə idarəçiləri / Callbacks: Anonim və ya yerli sinflər callback və ya hadisə idarəçilərini həyata keçirmək üçün istifadə edilə bilər, məsələn, UI elementləri və ya dinləyicilərlə işləyərkən.
- Konfiqurasiya sinfləri: Statik iç içə sinflər xarici sinfə aid sabitlər və ya konfiqurasiya parametrlərini ehtiva edə bilər.