Sobes.tech
Middle

Čo sú to vnorené triedy a ako sa používajú v programovaní?

sobes.tech AI

Odpoveď od AI

Vnorené triedy sú triedy deklarované vnútri inej triedy. Umožňujú logické skupinovanie tried, ktoré sa používajú iba na jednom mieste, zvyšujú enkapsuláciu a robia kód prehľadnejším.

Vnorené triedy sú:

  • Statické (Statické vnorené triedy): Nemajú prístup k nestatickým členom vonkajšej triedy. Môžu byť vytvorené bez inštancie vonkajšej triedy.
  • Nestatické (Vnorené triedy): majú prístup ku všetkým členom vonkajšej triedy (vrátane súkromných). Na vytvorenie inštancie nestatickej vnútornej triedy je potrebná inštancia vonkajšej triedy.

Použitie:

  • Skrytie implementácie: Vnorená trieda môže byť použitá ako pomocná trieda, ktorej detaily implementácie by nemali byť dostupné zvonku.
  • Skupinovanie: Logické spojenie úzko súvisiacich tried.
  • Implementácia callbackov / poslucháčov: Často sa používa na vytváranie anonymných vnorených tried na implementáciu rozhraní alebo abstraktných tried.
  • Iterátory: Vnorená trieda je vhodná na implementáciu iterátora, pretože má prístup k vnútornému stavu kolekcie.

Príklad (Java):

class OuterClass {
    private int outerField;

    // Statická vnorená trieda
    static class StaticNestedClass {
        void print() {
            // Nemá prístup k outerField
            System.out.println("Zo StaticNestedClass");
        }
    }

    // Vnorená trieda
    class InnerClass {
        void print() {
            // Má prístup k outerField
            System.out.println("outerField: " + outerField);
        }
    }
}
// Vytvorenie inštancie statickej vnorenej triedy
OuterClass.StaticNestedClass staticNested = new OuterClass.StaticNestedClass();
staticNested.print();

// Vytvorenie inštancie vnútornej triedy
OuterClass outer = new OuterClass();
OuterClass.InnerClass inner = outer.new InnerClass();
inner.print();