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:
-
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 // } } } -
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.