Sobes.tech
Junior

Čo sú to vnorené triedy?

sobes.tech AI

Odpoveď od AI

Vnorené triedy (Nested Classes) sú triedy definované vnútri inej triedy. Delia sa na dva hlavné typy:

  1. Statické vnorené triedy (Static Nested Classes): Sú podobné statickým členom vonkajšej triedy. Nemajú priamy prístup k nestatickým členom vonkajšej triedy. Sú vytvárané bez inštancie vonkajšej triedy.

    Príklad v Jave:

    class OuterClass {
        static int outerStaticField;
        int outerInstanceField;
    
        static class StaticNestedClass {
            void accessOuterStatic() {
                // Prístup ku statickému členovi OuterClass
                int value = OuterClass.outerStaticField;
            }
    
            // Nemá priamy prístup k outerInstanceField
            // void accessOuterInstance() {
            //     int value = outerInstanceField; // Chyba pri kompilácii
            // }
        }
    }
    
  2. Vnorené triedy (Inner Classes): Nestatické. Majú prístup ku všetkým členom vonkajšej triedy, vrátane statických a nestatických, dokonca aj súkromných. Inštancia vnorené triedy je spojená s inštanciou vonkajšej triedy. Sú vytvárané použitím inštancie vonkajšej triedy.

    Príklad v Jave:

    class OuterClass {
        static int outerStaticField;
        int outerInstanceField;
    
        class InnerClass {
             void accessOuterMembers() {
                 // Prístup ku statickým a nestatickým členom OuterClass
                 int staticValue = OuterClass.outerStaticField;
                 int instanceValue = outerInstanceField;
             }
        }
    }
    

Existujú aj špecifické druhy vnorených tried:

  • Lokálne triedy (Local Classes): Definujú sa vnútri bloku (napríklad, metódy, konštruktora alebo inicializačného bloku). Sú dostupné iba v rámci tohto bloku.
  • Anonymné triedy (Anonymous Classes): Nemajú meno. Používajú sa na vytvorenie jednorazovej implementácie rozhrania alebo rozšírenia triedy. Sú definované a inštancované súčasne.

Výhody vnorených tried:

  • Logické zoskupenie: Umožňujú zoskupiť triedy, ktoré sú logicky prepojené, čím zvyšujú čitateľnosť kódu.
  • Inkapzulácia: Môžu mať prístup k súkromným členom vonkajšej triedy, čím posilňujú inkapsuláciu.
  • Jednoduchší kód: Uľahčujú písanie kódu pre triedy, ktoré používajú iba jeden iný triedu.

Použitie v QA automatizácii:

  • Page Object Model: Vnorené alebo statické vnorené triedy môžu byť použité na organizáciu prvkov stránky (napríklad sekcií, modálnych okien) vnútri hlavnej triedy Page Object.
  • Spracovatelia udalostí / Callback-y: Anonymné alebo lokálne triedy môžu byť použité na implementáciu testov s využitím callback-ov alebo spracovateľov udalostí, napríklad pri práci s UI prvkami alebo poslucháčmi.
  • Konfiguračné triedy: Statické vnorené triedy môžu obsahovať konštanty alebo konfiguračné parametre, špecifické pre vonkajšiu triedu.