如果你调用第一个方法,'CreateLotsOfAlphas',它应该打印什么?我只是在遵循程序流程时遇到了麻烦。我以为它会打印 aabbc,但由于某种原因,它实际上会打印 bacbc。
我的理由是 newA1.y 最初只是输入 a,因为它是空值。a 保存到 this.y 中,所以 newA2.y 是 (a + b),b 保存到 this.y 中,然后 newA3.y 是 (b + c) 得到 aabbc。
我看错了吗?
public void CreateLotsOfAlphas() {
Alpha newA1 = new Alpha(1.0, "a", null);
Alpha newA2 = new Alpha(2.0, "b", newA1);
Alpha newA3 = new Alpha(3.0, "c", newA2);
System.out.println(newA1.y + newA2.y + newA3.y);
}
顺便说一下,这两种方法属于两个不同的类。
public Alpha(double x, String y, Alpha oldAlpha) {
this.x = x;
this.y = y;
w = (int) x;
if (oldAlpha != null) {
oldAlpha.y = y + oldAlpha.y;
}
}