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