Какие существуют особенности использования вложенных классов: статических и внутренних, в чем заключается разница между ними
- Вложенные классы могут обращаться ко всем членам обрамляющего класса, в том числе и приватным.
- Для создания объекта статического вложенного класса объект внешнего класса не требуется.
- Из объекта статического вложенного класса нельзя обращаться к не статическим членам обрамляющего класса напрямую, а только через ссылку на экземпляр внешнего класса.
- Обычные вложенные классы не могут содержать статических методов, блоков инициализации и классов. Статические вложенные классы - могут.
- В объекте обычного вложенного класса хранится ссылка на объект внешнего класса. Внутри статической такой ссылки нет. Доступ к экземпляру обрамляющего класса осуществляется через указание
.this
после его имени. Например:Outer.this
.
Oct. 22, 2023, Источник
- Вложенные классы могут обращаться ко всем членам обрамляющего класса, в том числе и приватным.
- Для создания объекта статического вложенного класса объект внешнего класса не требуется.
- Из объекта статического вложенного класса нельзя обращаться к не статическим членам обрамляющего класса напрямую, а только через ссылку на экземпляр внешнего класса.
- Обычные вложенные классы не могут содержать статических методов, блоков инициализации и классов. Статические вложенные классы - могут.
- В объекте обычного вложенного класса хранится ссылка на объект внешнего класса. Внутри статической такой ссылки нет. Доступ к экземпляру обрамляющего класса осуществляется через указание
.this
после его имени. Например:Outer.this
.
Oct. 22, 2023, Источник