logo
Методичка Java

Анонимные (anonimous) классы и обработчики событий

Анонимный (безымянный) класс объявляется без задания имени класса и переменных данного безымянного типа – задаётся только конструктор класса вместе с его реализацией. У анонимного класса может быть только один экземпляр, причём он создаётся сразу при объявлении класса. Поэтому перед объявлением анонимного класса следует ставить оператор new. Анонимный класс должен быть наследником какого-либо класса или интерфейса, и соответствующий тип должен быть указан перед списком параметров конструктора.

Синтаксис задания анонимного класса таков:

new ИмяПрародителя(список параметров конструктора) {

тело конструктора

}

Как уже говорилось, анонимные классы обычно используют в обработчиках событий, причём сама необходимость в таких классах, по мнению автора, вызвана неудачной организацией в Java работы с обработчиками событий.

Пример использования анонимного класса в “слушателе” события (о них речь пойдёт в следующем параграфе):

addMouseMotionListener(

new java.awt.event.MouseMotionAdapter(){

public void mouseDragged(java.awt.event.MouseEvent e){

System.out.println("Mouse dragged at: x="+

e.getX()+" y="+e.getY()

);

}

}

);