在测试用例/不同类中调用构造函数时重写Java类值
我有这样的测试用例 TestSquare.java 因此在最后一行中,在测试用例/不同类中调用构造函数时重写Java类值,java,constructor,Java,Constructor,我有这样的测试用例 TestSquare.java 因此在最后一行中,s.getMidPoint()不等于点(101201),而是被215315覆盖。这是我的构造函数代码和get方法 Square.java 因此,s.getMidPoint()不应替换为Point对象。我做错了什么 这两个代码属于不同的类。因此,Square.java中没有main方法。如果您不希望其他类能够编辑Square的中间,请返回一个新点: public Point getMidPoint() { return
s.getMidPoint()
不等于点(101201)
,而是被215315
覆盖。这是我的构造函数代码和get方法
Square.java
因此,s.getMidPoint()
不应替换为Point
对象。我做错了什么
这两个代码属于不同的类。因此,
Square.java
中没有main方法。如果您不希望其他类能够编辑Square
的中间,请返回一个新点:
public Point getMidPoint() {
return new Point(newMidPoint);
}
然后,您的测试将以绿色运行。如果我按照您的问题进行操作,您的问题是您正在修改从
正方形
中提取的点
的实例,方法是指定其坐标。如果要安全地获取中点
字段,需要执行一些复制,而不仅仅是传递对对象字段的引用。是的,问题在于点
更改中点
的值。也就是说,我将如何进行复制。你能再给我一些提示吗?谢谢,啊,太棒了。我不知道。非常感谢你。
public Square(Point newP, int width, int height, Shift newS) {
this.newMidPoint = newP;
this.newWidth = width;
this.newHeight = height;
this.newShift= newS;
}
public Point getMidPoint() {
return newMidPoint;
}
public Point getMidPoint() {
return new Point(newMidPoint);
}