Sobes.tech
Назад к вопросам
Junior — Middle
64

Является ли внутренний класс в Java закрытым для доступа из других классов?

Ответ от нейросети

sobes.tech AI

Внутренний класс в Java не обязательно является закрытым для доступа из других классов. Доступ к внутреннему классу зависит от модификатора доступа, который ему задан (private, protected, public или package-private). Например, если внутренний класс объявлен как private, то он доступен только внутри внешнего класса. Если же он объявлен как public или без модификатора (package-private), то доступ к нему возможен и из других классов, находящихся в том же пакете или при импорте.

Пример:

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

// Из другого класса в том же пакете:
Outer.InnerPublic obj = new Outer().new InnerPublic(); // доступ разрешён
// Outer.InnerPrivate obj2 = new Outer().new InnerPrivate(); // ошибка компиляции