java,匿名内部类问题

时间:2014-02-08 15:32:37

标签: java inner-classes anonymous-class

假设我需要一个特定的应用程序范围的actionListener。例如:

public class TestAnonymousInnerClass {
    private ActionListener closeAction = new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            System.exit(0);
        }
    }
    ...
}

此代码编译并正常运行,但是我可以说我使用匿名内部类来实例化此closeAction字段吗?

UPD: 我正在读这本书 SG Ganesh,Tushar Sharma - Oracle认证专家Java SE 7程序员考试1Z0-804和1Z0-805(Java专家的声音) - 2013 这里有一个令人困惑的插图:{ {0}}如下所示,不可能有匿名和“非本地”类。 但我的班级似乎是那种,因为它不是在方法的背景下,而且仍然是匿名的。

1 个答案:

答案 0 :(得分:3)

是的,您已经创建了一个ActionListener接口的匿名内部实现类。并实例化它并分配给closeAction变量

简而言之,我们可以说匿名类是一个根本没有名字的内部类。并且它的实例是在创建时创建的。查看here了解详情。