一、内部类:
内部类是定义在另一个类中的类,使用它的原因主要有3个:
内部类方法可以访问该类定义所在的作用域中的数据,包括私有的数据;
内部类可以对同一个包中的其他类隐藏以来;
当想要定义一个回调函数且不想编写大量代码时,使用匿名内部类比较便捷。
二、局部内部类:
讨论匿名内部类之前,先看看局部内部类,它是在一个方法中定义的类。
局部内部类不能用public或private访问说明符来声明,它的作用域被限定在声明这个局部内部类的块中。局部内部类可以对外部世界完全地隐藏起来。
局部内部类不仅能访问其外围类,还可以访问局部变量,不过这些局部变量必须被声明为final,如上述代码中start()方法的参数beep所示。
三、匿名内部类
将上面的局部内部类的代码修改一下,就可以定义一个匿名内部类,这种类没有类名。匿名内部类除了具有内部类的优点外,还可以减少代码量。