Что такое анонимные классы в Java и где они могут быть применены?
Ответ от нейросети
sobes.tech AI
Анонимные классы в Java — это локальные классы без имени. Они объявляются и создаются одновременно. Обычно используются, когда требуется однократная реализация интерфейса или расширение абстрактного или обычного класса.
Применение анонимных классов:
-
Обработчики событий в GUI: Часто используются для создания обработчиков нажатий кнопок или других действий пользователя.
// Пример с Swing ActionListener JButton button = new JButton("Нажми меня"); button.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { System.out.println("Кнопка нажата!"); } }); -
Реализация интерфейсов с одним абстрактным методом (SAM interfaces): До появления лямбда-выражений были основным способом реализации функциональности для таких интерфейсов.
// Пример с Runnable new Thread(new Runnable() { @Override public void run() { System.out.println("Поток запущен"); } }).start(); -
Создание объектов "на лету": Когда нужно быстро создать объект с измененным поведением от существующего класса без необходимости создавать отдельный именованный класс.
// Пример расширения абстрактного класса AbstractList<String> cityList = new AbstractList<String>() { private String[] cities = {"Москва", "Санкт-Петербург"}; @Override public String get(int index) { return cities[index]; } @Override public int size() { return cities.length; } }; System.out.println(cityList.get(0)); // Выведет: Москва
Анонимные классы имеют доступ к final или effectively final локальным переменным области, в которой они объявлены. Они не могут иметь статических членов и не могут быть abstract или final.