内部类是一个定义在另一个类中的类
- 内部类方法可以访问该类定义在所有的作用域中的数据,包括私有的数据。
- 内部类可以对同一个包中的其他类隐藏起来。
- 当想要定义一个回调函数且不想编写大量代码时,使用匿名内部类比较便
- 内部类中声明的所有静态域都必须是final
- 内部类不能有static方法
局部内部类
- 局部内部类不能用private或public访问说明符进行声明。它的作用域被限定在声明这个局部类的块中。
- 局部内部类能够访问包含它们的内部类,还可以访问局部变量(必须用final修饰)。
匿名内部类:
public void start(int interval, final boolean beep) {
ActionListener listener = new ActionListener() {
public void actionPerformed(ActionEvent event) {
System.out.println("At the tone, the time is " + new Date());
if (beep)
Toolkit.getDefaultToolkit().beep();
}
};
Timer t = new Timer(interval, listener);
t.start();
}
静态内部类:被声明为静态的内部类,它可以不依赖于外部类实例被实例化。