您的位置:首页 > 编程语言 > Java开发

Java匿名内部类

2015-12-05 11:39 344 查看
内部类(Inner class)是定义在另一个类中的类。使用内部类的原因:

1) 内部类可以访问该类所在外部类的所有数据,包括私有数据;

2)内部类可以对同一个包中的其他类隐藏起来;

3)当要定义一个回调函数且不想编写大量代码时,使用匿名(anonymous)内部类比较方便.

匿名内部类(anonymous inner class)

某个内部类对象在只在局部区域使用一次,该类不必命名,称为匿名内部类。

public void start()
{
ActionListener listener = new ActionListener()
{
public void actionPerformed(ActionEvent event)
{
Date now = new Date();
System.out.println("At the tone, the time is " + now);
if(beep) Toolkit.getDefaultToolkit().beep();
}
};
Timer t = new Timer(interval, listener);
t.start();
}


上面这段代码的含义是,创建一个实现ActionListener接口的类对象,该类是匿名内部类,处于start方法内部且没有名字。该类的实现定义在ActionListener()后的{}中。

匿名内部类可实现自一个接口,或者扩展自一个超类。语法格式分别为:

new InterfaceType()

{

inner class methods and data

}

new SuperType(construction parameters)

{

inner class methods and data

}

参考

Cay S. Horstmann, Gary Cornell. JAVA核心技术卷I:基础知识(第八版).机械工业出版社.2011年4月第1版. 第6.4节.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 匿名内部类