Sobes.tech
Junior — Middle
93

Czy klasa wewnętrzna w Java jest prywatna dla dostępu z innych klas?

Odpowiedź od AI

sobes.tech AI

Klasa wewnętrzna w Java nie musi być koniecznie prywatna, aby była dostępna z innych klas. Dostęp do klasy wewnętrznej zależy od modyfikatora dostępu, który jej przypisano (private, protected, public lub package-private). Na przykład, jeśli klasa wewnętrzna jest zadeklarowana jako private, jest dostępna tylko w obrębie klasy zewnętrznej. Jeśli jest zadeklarowana jako public lub bez modyfikatora (package-private), jest dostępna również z innych klas w tym samym pakiecie lub przez import.

Przykład:

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

// Z innej klasy w tym samym pakiecie:
Outer.InnerPublic obj = new Outer().new InnerPublic(); // dostęp dozwolony
// Outer.InnerPrivate obj2 = new Outer().new InnerPrivate(); // błąd kompilacji