我正在开展一个项目,但我仍然坚持我认为最后的部分。我有一个类: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类型,但我不知道它是如何完成的?
答案 0 :(得分:2)
忽略在方法中有方法的事实(在Java中不允许)。问题出现在这里:
Point newPoint = ls.scaleByFactor(scalar);
您声明了Point
类型的变量,但您将scaleByFactor
的结果分配给它。 scaleByFactor
会返回Volt
个对象,因此您无法将其分配给Point
。
答案 1 :(得分: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);