有人可以解释一下这个程序是如何执行的吗?
这是我似乎无法得到它的输出的代码:
class Box {
int size;
Box (int s) {
size = s;
}
}
public class Laser {
public static void main(String[] args) {
Box b1 = new Box(5);
Box[] ba = go(b1, new Box(6));
ba[0] = b1;
for(Box b : ba)
System.out.println(b.size + " ");
}
static Box[] go (Box b1, Box b2) {
b1.size = 4;
Box[] ma = {b2, b1};
return ma;
}
}
我运行它时的实际输出是 4, 4。但根据我的理解,这应该是 5, 4。任何人都可以帮助理解这是如何执行的吗?