gpt4 book ai didi

java - 尝试理解这段代码中 b.h 和 b.getH() 的打印顺序

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

我想知道为什么打印以下代码:

Beta 44
44 44

请纠正我,因为我的分析显然不正确,但我无法弄清楚原因。

b.h 首先被调用,它是 44,然后调用 b.getH() 并打印“Beta 44”。因此控制台打印 44 Beta 44。为什么事实并非如此?

public class Beta {

public int h = 44;
public int getH(){
System.out.println("Beta "+h);
return h;
}
public static void main(String[] args) {
Beta b = new Beta();
System.out.println(b.h+" "+ b.getH());
}

}

最佳答案

System.out.println(b.h+" "+ b.getH());

is equivalent to (YMMV)

StringBuilder builder = new StringBuilder();
String result = builder.append(b.h).append(" ").append(b.getH()).toString();
System.out.println(result);

正如您所看到的,虽然首先评估 b.h,但直到从串联构造整个 String 值时才会打印它。该构造涉及调用 b.get() ,它有自己的

System.out.println("Beta "+h);

关于java - 尝试理解这段代码中 b.h 和 b.getH() 的打印顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27932558/

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