静态成员和非静态成员的细节

来源:互联网 发布:淘宝的店铺经营许可 编辑:程序博客网 时间:2024/05/02 04:17
--根据静态成员不能访问非静态成员的规则,外部类的静态方法,静态代码块不能访问非静态内部类,包括不能使用----非静态内部类定义变量,创建实例等
--总之,不允许在外部类的静态成员中直接使用非静态内部类

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(){} 
}
}

0 0