public class TestInnerStatic
{
/*只有声明成static的内部类,才可以是里面的成员声明成static。否则错误,如果声明成static的类,不就是全局的了吗?它就相当放在外面了已经不再是内部类了,并且它的对象中将不包含指向外包类对象的指针,所以不能再引用外包类了*/
public static class InnerClass {
public static int classVar = 0;
public static void doSomething()
{
System.out.println("TestInnerStatic.InnerClass.doSomething");
}
}
public static void main(String[] args)
{
InnerClass.doSomething();
}
}
内部类声明成static就相当于一个外部类
默认的内部类是default类型,也就是friendly,只能在包内访问,所以如果你把内部类声明成public,就可以在包外访问
在包外直接访问
staticInnerClass.outp();
new innerClassTest().new CommonInnerClass();//访问普通内部类。。。