1、内部类(Inner Class),共分为4种:
1)静态内部类(static inner class):只能访问外部类的静态成员变量与静态方法,生成静态内部类对象的方法:外部类.静态内部类 变量名 = new 外部类.静态内部类();outerClass.InnerClass inner = new OuterClass.InnerClass();
这里Inner就是静态内部类,private static int a =4;这里的a变量必须是static的,如果去掉将出错,(静态的只能访问静态的),生成的class文件如下:StaticInner$Inner.class、StaticInner.class、StaticInnerClass.class,内部类的class名字为外部类名字+“$”+ 内部类定义的名字
2)成员内部类(member inner class):可以访问外部类的静态与非静态的方法与成员变量。生成成员内部类对象的方式为:
OuterClass.InnerClass inner = new OuterClass().new InnerClass();若想在成员内部类中访问外部类的成员变量,语法为: OuterClass.this.a;
3)局部内部类(Local Inner Class):定义在方法当中,只能访问方法中声明的finally类型的变量。
4)匿名内部类(Anonymous Inner Class),是局部内部类的一种,没有类名字,没有关键字class、extends、implements,没有constructors,但是,
匿名内部类会隐式的继承一个父类或实现一个接口
2、Swing使用匿名内部类的例子