Назад к вопросам
Junior
70
questionbank

Что такое анонимные классы и где они применяются?

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

Анонимный класс - это локальный внутренний класс без имени.

  • Применяется:

    • При создании слушателей событий в GUI-приложениях (например, для кнопок).
    • Для реализации интерфейсов или расширения абстрактных классов "на месте", когда нужен всего один экземпляр и его использование локально.
    • В многопоточности для создания экземпляров Runnable или Callable.
  • Преимущества:

    • Сокращают объем кода, когда не требуется отдельное повторное использование класса.
    • Упрощают чтение кода для простых, одноразовых реализаций.
  • Недостатки:

    • Могут сделать код менее читаемым для сложных реализаций.
    • Нельзя повторно использовать.
    • Доступ к полям внешнего класса только через final или effectively final переменные в старых версиях Java.
// Пример использования анонимного класса для Runnable
Runnable myRunnable = new Runnable() {
    @Override
    public void run() {
        System.out.println("Running in an anonymous class thread.");
    }
};

new Thread(myRunnable).start();
// Пример использования анонимного класса для слушателя события (гипотетический)
// Некоторые UI-фреймворки используют такой подход.
//button.setOnAction(new EventHandler<ActionEvent>() {
//    @Override
//    public void handle(ActionEvent event) {
//        System.out.println("Button clicked!");
//    }
//});