gpt4 book ai didi

java - 无法理解为什么这个程序给我这个输出。请解释一下

转载 作者:行者123 更新时间:2023-12-02 06:41:59 25 4
gpt4 key购买 nike

当我运行这个程序时,它会给出以下输出。为什么我得到的 g.y 是 2 而不是 5。那为什么我得到这个输出呢?我错过了理解什么。请解释一下。

public class G {

public int x = 3;
public static int y = 7;

public static void main(String[] args) {

G g = new G();
G h = new G();

g.x=1;
g.y=5;
h.x=4;
h.y=2;

System.out.println("g.x="+g.x);
System.out.println("g.y="+g.y);
System.out.println("h.x="+h.x);
System.out.println("h.y="+h.y);

}
}

输出:

g.x=1
g.y=2
h.x=4
h.y=2

最佳答案

静态变量是每个整个类一个,而不是每个实例一个。

g.yh.y(以及 G.y)都引用同一个变量,因此最后一个赋值获胜,值为 2。

通过类的实例访问静态变量会令人困惑,但 Java 允许这样做。

关于java - 无法理解为什么这个程序给我这个输出。请解释一下,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19057756/

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