Sobes.tech
Junior

Mi az a beágyazott osztályok?

sobes.tech MI

Válasz az MI-től

A beágyazott osztályok olyan osztályok, amelyeket egy másik osztályon belül deklarálnak. Két fő típusuk van: statikus beágyazott osztályok (a osztály statikus tagjai) és belső osztályok (nem statikus tagok).

Statikus beágyazott osztályok:

  • A külső osztályhoz kapcsolódnak, nem a példányához.
  • Csak a külső osztály statikus tagjaira hivatkozhatnak.
  • példány nélkül is létrehozhatók.

Belső osztályok:

  • A külső osztály példányához kapcsolódnak.
  • Minden külső osztálytaghoz hozzáférhetnek (statikus és nem statikus), beleértve a privátakat is.
  • példányt igényelnek a létrehozásukhoz.

Használati példák:

  • Csoportosítás: Logikailag összefüggő osztályokat lehet összefogni a kód olvashatóságának és szervezésének javítása érdekében.
  • Encapsuláció: A belső osztályok hozzáférnek a külső osztály privát tagjaihoz, lehetővé téve a részletek elrejtését.
  • Eseményfigyelők (Java): Gyakran használják névtelen belső osztályok létrehozására.
  • Segédosztályok: Kis osztályok, amelyeket csak a külső osztály használ.
// Statikus belső osztály példája
class OuterClass {
    static int outerStaticField = 1;
    int outerInstanceField = 2;

    static class StaticNestedClass {
        void display() {
            System.out.println("Külső statikus mező: " + outerStaticField);
            // Nem lehet közvetlenül hozzáférni az outerInstanceField-hez
        }
    }
}

// Belső osztály példája
class AnotherOuterClass {
    int outerField = 10;

    class InnerClass {
        void display() {
            System.out.println("Külső mező: " + outerField); // Hozzáférés a külső osztály mezőjéhez
        }
    }
}

Összehasonlító táblázat:

Jellemző Statikus beágyazott osztály Belső osztály
Kapcsolat A külső osztállyal Egy példányával a külső osztálynak
Hozzáférés a külső tagokhoz Csak statikus Minden tag (beleértve a privátakat is)
Példány szükséges Nem Igen
Tartalmazhat statikus tagokat Igen Nem (kivéve a konstansokat)