Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗jvOpSnAn 113 of 147 menu
◀ ▶

Анонимный класс в Java

Анонимный класс - тип без отдельного имени в файле: выражение new ИмяТипа() { ... } сразу создаёт объект и при необходимости переопределяет методы базового класса или интерфейса.

Для записи в блоге зададим правило форматирования заголовка через анонимную реализацию интерфейса:

interface TitleFormatter { String format(String raw); } class Post { String title; Post(String title) { this.title = title; } String displayTitle(TitleFormatter formatter) { return formatter.format(title); } }

Создадим анонимный класс форматирования и выведем заголовок записи:

Post post = new Post("news"); TitleFormatter formatter = new TitleFormatter() { @Override public String format(String raw) { return raw.toUpperCase(); } }; System.out.println(post.displayTitle(formatter));

Переменная имеет тип интерфейса TitleFormatter, а работает переопределённая логика анонимного объекта. Такой объект живёт, пока на него есть ссылка; это не единственный экземпляр на всю программу, как у singleton.

Объявите интерфейс Greeter с методом String greet(String name). Сохраните в Greeter g анонимный класс, который возвращает "hi " и имя. Выведите g.greet("Bo").

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить