public class A
{
public static class B
{
public void fun()
{
System.out.println("OK");
}
}
public class C
{
public void fun()
{
System.out.println("OK");
}
}
public static void main(String[] args)
{
A a = new A();
A.B ab = new A.B();//静态内部类(方法),访问格式:外部类.内部类()
A.C b = a.new C();//成功
A.C c = new A().new C();//成功
}
}
static可以修饰类成员位置上的内部类,但是这是内部类只能访问外部类中的static成员。这里要访问function,可以直接用类名调用Outer.Inner.function();静态成员是随类的,与对象无关的,若想创建静态内部类对象,可以Outer.Inner in = new Outer.Inner();即不能用外部类的对象来调用静态内部类的构造方法。