是否可以在 static 环境中访问非 static 变量?

static 变量在 Java 中是属于类的,它在所有的实例中的值是一样的。当类被 Java 虚拟机载入的时候,会对 static 变量进行初始化。如果你的代码尝试不用实例来访问非 static 的变量,编译器会报错,因为这些变量还没有被创建出来,还没有跟任何实例关联上。

public class Test {
    @org.junit.Test
    public void test(){

        //Demo demo =new Demo();
        System.out.println(Demo.a);
        //System.out.println(Demo.b);//报错

        Demo demo =new Demo();
        System.out.println(Demo.a);//通过
        System.out.println(demo.b);//通过
    }
}

class Demo{
    static int a = 1;
    int b =2;
}
posted @ 2020-02-10 13:34  KrisTse  阅读(652)  评论(0编辑  收藏  举报