Это анонимный внутренний класс. Это просто ярлык. Вы можете представить, как будет выглядеть код, если вам нужно будет создать его как класс верхнего уровня:
class CloseApplicationWindowAdapter extends WindowAdapter {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
}
Тогда внутри вашего кода вы сделаете:
CloseApplicationWindowAdapter adapter = new CloseApplicationWindowAdapter();
addWindowListener(adapter);
Оба решения имеют абсолютно одинаковый эффект (хотя, например, анонимный класс может создать файл Class$1.class
). Java-программисты часто предпочитают подход анонимного класса, если анонимный класс не становится слишком большим / сложным / важным.