内部类:
定义: 类可以在其他类中定义。这样的类可以是完整的类定义或者是 “匿名内部类”定义。
用途:
1. 主要用来进行GUI事件处理。
2. 在一些抽象数据类型的实现就可以用内部类来表示队列中当前存储每个数据的对象。
特点:
1. 内部类对象与创建它的外部类对象之间有特殊的关系。内部类对象可以直接访问外部类对象的所有实例变量和方法。
2. 内部类也可以在类的方法中定义,这样的内部类可以访问它的外部类所有实例变量和方法以及 该方法中的 所有final局部变量。但对定义它的方法中局部变量的访问将受到限制。
3. 当匿名内部类实现一个接口时,它必须定义接口中的每个方法。
内部类的注释:
1. 含内部类的类在编译时将为每个内部类生成独立的 .class 文件。有名字的内部类的文件名为“外部类名$内部类名.class” ;匿名内部类的文件名为“外部类名$#.class”,其中,#是编译器给每个匿名内部类的编号,从1开始,依次递增。
2. 具有类名的内部类可以定义为 public protected ,包访问 或 private,其使用限制和其他类成员相同。
3. 为了访问外部类的this引用,可以使用“外部类名.this”。
4. 【内部类的创建】——外部类负责创建它的内部类对象。为了创建另一个类的内部类的对象,首先创建这个外部类的一个对象,并把它赋给一个引用(假设为 ref),然后可用下属形式来创建内部类的对象:
a) 外部类名.内部类名innerRef = ref.new 内部类名();