Ответ 1
Это возможно. Объявите общедоступный класс , но его конструктор закрыт. Таким образом, вы можете создать его только внутри вашего окружающего класса и самого себя, но не извне.
У меня есть внутренний класс в моем коде. Я хочу предоставить открытый доступ к его экземплярам, но только внешний класс должен иметь возможность создавать эти экземпляры, например, в "private" доступе. Возможно ли это, если не сделать должным образом небольшой пакет (или создать открытый интерфейс для каждого такого внутреннего класса)?
(Извините, если мой английский плохой: P)
Это возможно. Объявите общедоступный класс , но его конструктор закрыт. Таким образом, вы можете создать его только внутри вашего окружающего класса и самого себя, но не извне.
По умолчанию Если вы хотите получить экземпляр внутреннего класса, вам нужно сначала использовать класс Outer.
A внутренний класс является членом его охватывающего класса.
Вам не нужно ничего делать.
Нестатические вложенные классы (внутренние классы) имеют доступ к другим членам охватывающего класса, даже если они объявлены частными
Надеюсь, я правильно понял ваш вопрос.
Пожалуйста, обратитесь.
Итак, сделайте private
внутреннего класса.
public class Outer {
private class Inner {}
public String foo() {
return new Inner().toString();
}
}
вы не можете юридически вызвать частный конструктор по умолчанию, потому что он является частным