1、内部类(inner class),内部类是定义在类里面的类,内部类的作用与特性:
A、内部类方法可以访问该类定义所在的作用域中的数据,包括私有的数据。
B、内部类可以对同一个包中的其他类隐藏起来;只有当前类可以访问自己的内部类;
C、想要定义一个回调函数且不想编写大量代码时,使用匿名(anonymous)内部类比较便捷。
D、私有类的静态域必须是final类型;那是因为如果希望一个静态域只有一个实例,但是每次调用内部类都有一个单独的实例,如果不是final类型,它就可能不唯一。
应用举例
class TalkingClock{
private int interval;
private boolean beep;
public TalkingClock(int interval, boolean beep) {
super();
this.interval = interval;
this.beep = beep;
}
public void start(){
ActionListener listener=new TimePrinter();
Timer t=new Timer(interval, listener);
}
//innerclass TimePrinter
public class TimePrinter implements ActionListener{
//这句是为了说明私有类的静态域(static)必须为final类型,否则编译通不过
public static final double temp=100.0;
public void actionPerformed(ActionEvent event){
System.out.println("the time is"+new Date());
//内部类里面可以访问外部类的私有字段beep
if(beep)java.awt.Toolkit.getDefaultToolkit().beep();
}
}
}