Java静态变量更改不了

Java中在类定义了一个静态变量,然后用第二个类中修改了静态变量, 为什么第三个类调用还是原来的数?

public class Test_01 {
    public static boolean flag = false;
}

public class Test_02 {
  public Test_02(){
      Test_01.flag = true;
  }
}

public class Test_03 {
    public static void main(String[] args) {
        System.out.println(Test_01.flag);
    }
}

但最终打印结果为false

你这个只是定义了,并没有执行,你像我下面写的这样执行一下才会变的


public class Test_01 {
    public static boolean flag = false;
}

public class Test_02 {
  public Test_02(){
      Test_01.flag = true;
  }
}

public class Test_03 {
    public static void main(String[] args) {
        Test_02 t = new  Test_02();
        System.out.println(Test_01.flag);
    }
}

麻烦贴下代码

看看你是怎么定义的,如果是public的,又没有设置为final,确实是可以改的。

public class Test_01 {
    public static boolean flag = false;
}

public class Test_02 {
  public Test_02(){
      Test_01.flag = true;
  }
}

public class Test_03 {
    public static void main(String[] args) {
        System.out.println(Test_01.flag);
    }
}

你得实例化对象

Test_02的构造器没有被执行地方 falg当然改不了