内部类共分为4种
静态内部类:只能访问外部类的静态成员变量与静态方法,生成静态内部类对象的方式为:OutClass.InnerClass inner = new OuterClass.InnerClass();
成员内部类:可以访问外部类的静态与非静态的方法与成员变量。生成成员内部类对象的方式为:OuterClass.InnerClass inner = new OuterClass().new InnerClass();
局部内部类:定义在方法当中,只能访问方法中声明的final类型的变量,举例如下:
class LocalInner
{
public void doSomething()
{
final int a = 4;
class Inner3
{
public void test()
{
System.out.println(a);
}
}
new Inner3().test();
}
}
匿名内部类:匿名内部类会隐式地继承一个父类或实现一个接口。它的访问权限与成员内部类相同。定义方式如下:
String str = test.get(new Date()
{
public String toLocaleString()
{
return "hello world";
}
});