Sobes.tech
Junior — Middle

Lze implementovat veřejnou metodu, která vrací objekt soukromé vnitřní třídy v rámci této třídy?

sobes.tech AI

Odpověď od AI

Ano, v Javě je možné implementovat veřejnou metodu ve třídě, která vrací objekt soukromé vnitřní třídy. Vnitřní třída může být deklarována jako soukromá, ale protože se nachází uvnitř vnější třídy, má tato třída povolení vytvářet a vracet její instance.

Příklad:

public class Outer {
    private class Inner {
        void sayHello() {
            System.out.println("Ahoj z Inner");
        }
    }

    public Inner getInner() {
        return new Inner();
    }
}

V tomto příkladu je metoda getInner() veřejná a vrací objekt soukromé vnitřní třídy Inner. Mimo třídu Outer nebude typ Inner dostupný, takže použití vráceného objektu přímo je možné pouze uvnitř Outer nebo přes rozhraní/abstrakce.