Sobes.tech
Junior — Middle

Je vnútorná trieda v Jave uzavretá pre prístup z iných tried?

sobes.tech AI

Odpoveď od AI

Vnútorná trieda v Jave nemusí byť nevyhnutne súkromná, aby bola prístupná z iných tried. Prístup k vnútornej triede závisí od modifikátora prístupu, ktorý jej bol priradený (private, protected, public alebo package-private). Napríklad, ak je vnútorná trieda deklarovaná ako private, je dostupná iba vnútri vonkajšej triedy. Ak je deklarovaná ako public alebo bez modifikátora (package-private), je dostupná aj z iných tried v tom istom balíku alebo prostredníctvom importu.

Príklad:

public class Outer {
    private class InnerPrivate {}
    public class InnerPublic {}
}

// Z inej triedy v tom istom balíku:
Outer.InnerPublic obj = new Outer().new InnerPublic(); // povolený prístup
// Outer.InnerPrivate obj2 = new Outer().new InnerPrivate(); // chyba kompilácie