Java Вложенные Классы - локальный класс, статический вложенный класс, анонимный внутренний класс

Java Вложенные Классы — локальный класс, статический вложенный класс, анонимный внутренний класс

Вложенные классы в Java объявляются в теле другого класса. Вложенный класс может иметь модификатор доступа private, public, protected, тогда как внешний класс может иметь только public или default .

Вложенные классы делятся на два типа:

Статический вложенный класс

Статические вложенные классы могут обращаться только к статическим членам внешнего класса. Статический вложенный класс такой же, как и любой другой класс верхнего уровня и является вложенным только для удобства упаковки.

Статические объекты класса могут быть созданы с следующим образом:

Внутренний класс Java

Любой не-статический вложенный класс известен как внутренний класс. Внутренние классы связаны с объектом класса, и они могут получать доступ ко всем переменным и методам внешнего класса. Объект внутреннего класса являются частью объекта внешнего класса. Чтобы создать экземпляр внутреннего класса, мы должны сначала создать экземпляр внешнего класса.

Внутренние классы могут быть созданы так:

Есть два специальных вида внутренних классов Java.

Локальные внутренние классы

Если класс определяется в теле метода, то его называют локальным внутренним классом. В таких классах допускаются только модификаторы abstract или final. Локальный внутренний класс может получить доступ ко всем членам внешнего класса и локальных final-переменных.

Локальный внутренний класс может быть определен так:

Внутренний анонимный класс

Локальный внутренний класс без имени известен как анонимный внутренний класс. Анонимный класс определяется и конкретизируется в одном заявлении. Анонимный внутренний класс всегда расширяет класс или реализовывает интерфейс. Так как анонимный класс не имеет имени, то не возможно определить конструктор для анонимного класса. Анонимные внутренние классы доступны только в точке, где она определена.

Это немного трудно понимать на слух, поэтому давайте посмотрим на примере.

Вот Java класс с внутренним классом, статическим вложенным классом, локальным внутренним классом и анонимным внутренним классом.

OuterClass.java

Вот тестовая программа, показывающая, как создать экземпляр и использовать вложенный класс в Java.

NestedClassTest.java

Результат выполнения программы:

Обратите внимание: когда OuterClass компилируется, создаются отдельные файлы класса для внутреннего класса, локального внутреннего класса и статического вложенного класса.

Преимущества вложенных классов в Java

  1. Если класс полезен только для одного класса, то имеет смысл сделать его вложенным. Это помогает упаковке классов.
  2. Вложенные классы увеличивают инкапсуляцию. Обратите внимание, что внутренние классы могут получить доступ к private членам класса и в то же время мы можем скрыть внутренний класс от «внешнего мира».
  3. Вложенные маленькие классы в классах верхнего уровня делают код более читаемым и простым в сопровождении.

Следите за обновлениями на prologistic.com.ua

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *