Sobes.tech
Junior

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:

  1. 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ı
            // }
        }
    }
    
  2. 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.