【发布时间】:2021-11-28 10:52:31
【问题描述】:
我有一个方法move(xSteps, ySteps),它取一个点并根据方法上的参数通过增加或减少x和y来移动它。
但是当 xSteps 和 ySteps 都为 0 时,我想将移动的点(实际上并没有移动)存储在与原始点相同的内存位置,因为 x 和 y 值应该相同。
移动方法如下
public Point move(int xSteps, int ySteps) {
Point p;
Point p2;
if (xSteps == 0 && ySteps == 0) {
p = new Point(x, y);
p2 = p
return p2;
} else {
p2 = new Point(x + xSteps, y + ySteps);
}
return p2;
}
但是当我运行这个测试时,
moved = point.move(0,0);
Assertions.assertTrue(p == moved);
它返回 false,但它应该是 true。为什么会这样?
【问题讨论】: