需要帮助在我的segment方法中编写translate方法

时间:2014-09-25 19:59:33

标签: java

我正在尝试在段类中编写translate方法。我的变量是p1 = x1,y1和p2 = x2,y2。如何使用这两个变量创建翻译方法?

我在我的Point类中编写了我的translate方法:

public void translate(int xmove, int ymove) {
       x += xmove;
       y += ymove;
    }

这里我的变量是x和y,简单!但对于我的段类,我很困惑,不知道如何将它们放在代码中。

2 个答案:

答案 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,则需要执行其他操作。此代码基于以下事实:您的某个点的翻译方法是公开的。使对象可变是有利有弊的,这是一个你应该考虑的设计问题。