--根据静态成员不能访问非静态成员的规则,外部类的静态方法,静态代码块不能访问非静态内部类,包括不能使用----非静态内部类定义变量,创建实例等
--总之,不允许在外部类的静态成员中直接使用非静态内部类
public class StaticTest{
//定义一个非静态内部类,是一个空类
private class In(){}
public static void main(String[] args){
//下面代码引起编译错误,因为静态成员main方法
//无法访问非静态成员(In类)
new In();
}
}
--java不允许在非静态内部类里定义静态成员
public class InnerNoStatic{
private class InnerClass{
//下面三个静态声明将引发如下编译错误
//非静态内部类不能有静态声明
static{
System.out.println("******");
}
private static int inProp;
private static void test(){}
}
}
时间: 2024-11-07 22:26:43