0

我正在做一个项目,但我陷入了我认为的最后一部分。我有一个类:Volt,它涉及以下代码段:

 public Volt scaleByFactor(double scalar) {

    public Point getStart() {
        return start;
    }

    public Point getEnd() {
        return end;
    }

    double tempX = (end.getX() - start.getX()) * scalar + start.getX();
    double tempY = (end.getY() - start.getY()) * scalar + start.getY();


    //There is another class: public Point(double x, double y)
    Point s = new Point(tempX, tempY);
    Volt sls = new Volt(start, s);
    return sls;

还有另一个类:Sweep,使用以下代码段:

    Point p1 = new Point(X1, Y1);
    Point p2 = new Point(X2, Y2);
    Volt ls = new Volt(p1, p2);
    Point newPoint = ls.scaleByFactor(scalar);

发生的事情是:当我编译时,我被告知:找到不兼容的类型:需要伏特:点

现在我明白这意味着我需要使用类型点而不是类型 Volt 但我不知道它是如何完成的?

4

2 回答 2

2

忽略您在方法中拥有方法的事实(Java 中不允许这样做)。问题出现在这里:

Point newPoint = ls.scaleByFactor(scalar);

您声明一个类型的变量,Point但将结果分配scaleByFactor给它。scaleByFactor返回一个Volt对象,因此您不能将其分配给Point.

于 2013-09-19T01:58:01.703 回答
1

我不完全确定预期的功能,但试试这个:

 public Point scaleByFactor(double scalar) {
    double tempX = (end.getX() - start.getX()) * scalar + start.getX();
    double tempY = (end.getY() - start.getY()) * scalar + start.getY();

    //There is another class: public Point(double x, double y)
    Point s = new Point(tempX, tempY);
    return s;
}

或将其他功能更改为:

Point p1 = new Point(X1, Y1);
Point p2 = new Point(X2, Y2);
Volt ls = new Volt(p1, p2);
Volt newVolt = ls.scaleByFactor(scalar);
于 2013-09-19T01:59:05.197 回答