我正在尝试在段类中编写translate方法。我的变量是p1 = x1,y1和p2 = x2,y2。如何使用这两个变量创建翻译方法?
我在我的Point类中编写了我的translate方法:
public void translate(int xmove, int ymove) {
x += xmove;
y += ymove;
}
这里我的变量是x和y,简单!但对于我的段类,我很困惑,不知道如何将它们放在代码中。
答案 0 :(得分:1)
如果这是一个几何片段,那么它应该用两个Point
s(一个线段)或两个Point
s和一个半径(圆形片段)来定义,或者是那些台词。
在这种情况下,它应该有一些存储Point
数据的私有字段。翻译整个片段只意味着翻译班级中的每个Point
。
所以如果它是一个线段,你有
class Segment {
Point start;
Point end;
//...
}
然后你只需要
class Segment {
Point start;
Point end;
public void translate(int xmove, int ymove) {
start.translate(xmove,ymove);
end.translate(xmove,ymove);
}
}
这是一个很好的设计,因为它重用了您的Point
类来定义Segment
,并使用Point
方法来定义Segment
方法。
但它确实取决于你所说的" segment" ...
答案 1 :(得分:0)
我不是100%确定这是你想要的,但假设你想翻译一段2分
class Segment{
Point point1;
Point point2;
//constructor
public void translateSegment(int xmove, int ymove){
point1.translate(xmove,ymove);
point2.translate(xmove, ymove);
}
}
如果将point class中的方法更改为private,则需要执行其他操作。此代码基于以下事实:您的某个点的翻译方法是公开的。使对象可变是有利有弊的,这是一个你应该考虑的设计问题。