gpt4 book ai didi

Java 变量范围 - 实例和类变量

转载 作者:行者123 更新时间:2023-11-29 05:04:18 25 4
gpt4 key购买 nike

我是 Java 的新手,正在尝试自学。我写了下面的代码,我想知道为什么输出不符合我的预期。下面是我写的代码:

public class Roughwork {

public static int classVar = 25;

public void getValue(int a){
classVar = a;
System.out.println(classVar);

}

public static void main(String[] args) {
Roughwork test = new Roughwork();
System.out.println(classVar);
test.getValue(30);
System.out.println(classVar);
}

}

这个程序的输出是:

25
30
30

我期望输出是

25
30
25

到底发生了什么以及我必须做什么才能获得预期的输出?

最佳答案

ClassVar 被声明为静态的。

public static int classVar = 25;

这意味着它不依赖于 Roughwork 的实例。如果您愿意,它是一个全局变量。您甚至可以从应用程序中的其他类调用此变量,如下所示:

Roughwork.classVar

要获得预期的行为,请将代码更改为:

public class Roughwork {

public int classVar = 25;

public void getValue(int a){
classVar = a;
System.out.println(classVar);

}

public static void main(String[] args) {
Roughwork test = new Roughwork();
System.out.println(test.classVar);
test.getValue(30);
Roughwork test2 = new Roughwork();
System.out.println(test2.classVar);
}

}

关于Java 变量范围 - 实例和类变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30965176/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com