Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> java

Анонимные внутренние классы в Java: определение, синтаксис и практические примеры

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

Узнайте, как определять, реализовывать и использовать анонимные внутренние классы в Java с понятными реальными примерами.

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

Анонимные внутренние классы определяются встроенно внутри другого класса или выражения. Поскольку у них нет имени, они создаются только тогда, когда выполняется охватывающий код, что делает их идеальными для коротких, разовых реализаций.

Типичный паттерн:

class OuterClass { // создание экземпляра анонимного внутреннего класса Type instance = new Type(parameters) { // переопределенные методы или дополнительное поведение }; } 

Здесь Type может быть либо:

  1. суперклассом, который анонимный класс расширяет
  2. интерфейсом, который анонимный класс реализует

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

Важно: Поскольку объявление является выражением, завершающая точка с запятой заканчивает оператор, а не тело класса.


Пример 1: Расширение класса с анонимным внутренним классом

class Polygon { public void display() { System.out.println("Inside the Polygon class"); } } class AnonymousDemo { public void createClass() { Polygon p1 = new Polygon() { @Override public void display() { System.out.println("Inside an anonymous class."); } }; p1.display(); } } public class Main { public static void main(String[] args) { new AnonymousDemo().createClass(); } } 

Вывод:

Inside an anonymous class.

В этой иллюстрации анонимный класс расширяет Polygon и переопределяет display(). Когда выполняется createClass(), создается экземпляр анонимного подкласса, и вызывается его переопределенный метод.


Пример 2: Реализация интерфейса с анонимным внутренним классом

interface Polygon { void display(); } class AnonymousDemo { public void createClass() { Polygon p1 = new Polygon() { @Override public void display() { System.out.println("Inside an anonymous class."); } }; p1.display(); } } public class Main { public static void main(String[] args) { new AnonymousDemo().createClass(); } } 

Вывод:

Inside an anonymous class.

Здесь анонимный класс реализует интерфейс Polygon, предоставляя требуемую реализацию метода в едином, лаконичном блоке.


Зачем использовать анонимные внутренние классы?

Анонимные внутренние классы сияют в сценариях, где нужна краткая, контекстно-специфичная реализация:

Преимущества включают:

Для более крупной, повторно используемой логики рассмотрите именованные классы или лямбда-выражения (для функциональных интерфейсов), чтобы сохранить поддерживаемость кода.

java

  1. Ключевое слово final в Java: переменные, методы и классы
  2. Оператор instanceof в Java: полное руководство с примерами
  3. Наследование в Java: концепции, типы и практические примеры
  4. Статические вложенные классы в Java: использование, отличия и примеры
  5. Паттерн Singleton в Java: как реализовать и безопасно использовать
  6. Рефлексия в Java: инспекция классов, методов и полей во время выполнения
  7. Мастерство Java ArrayList: операции, методы и лучшие практики
  8. Освоение Java ObjectOutputStream: сериализация, методы и практические примеры
  9. Освоение Java Generics: создание переиспользуемого, типобезопасного кода
  10. Мастерство файловых операций в Java с java.io: создание, чтение, запись и удаление