Анонимные классы

Есть еще один вариант описания классов – анонимные классы (anonymous class). Можно встретить еще такое название – inline class. Достаточно интересная возможность, которой многие пользуются. В этом случае вы сразу создаете объект и класс. Еще раз использовать этот класс внутри своего кода вы не сможете. Вообще, анонимный класс создается на основе какого-то класса или интерфейса, и сразу в этом же кусочке кода вы переопределяете (в случае с интерфейсом – реализуете) нужный метод.

Для начала мы посмотрим пример кода, который создает анонимный класс для добавления к кнопке слушателя.

Пример:

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;

public class HelloFrame extends JFrame {
    public HelloFrame() {
        JButton btn = new JButton("Say 'Hello'");

        // Вот наш пример анонимного класса
        btn.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e)
            {
                System.out.println("Hello, world");
            }
        });

        // Кладем кнопку на СЕВЕР
        add(btn, BorderLayout.NORTH);

        // Задаем размеры формы
        setBounds(100, 100, 200, 100);

        // Устанавливаем свойство для закрытия приложения при закрытии формы
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        // Делаем форму видимой
        setVisible(true);
    }

    public static void main(String[] args) {
        HelloFrame hf = new HelloFrame();
    }
}

Задание 1

Перепишите приведённый анонимный класс так, чтобы он выводил ваше имя в столбик 
по-буквенно. 

Last updated