我正在尝试从Rotate90方法中的角度方法调用角度,但我不确定语法。什么是正确的语法?
import java.lang.Math;
public class CartesianPoint implements Point
{
private double xCoord;
private double yCoord;
public CartesianPoint (double xCoordinate,double yCoordinate)
{
xCoord = xCoordinate;
yCoord = yCoordinate;
}
public double xCoordinate ()
{
return xCoord;
}
public double yCoordinate ()
{
return yCoord;
}
public double angle ()
{
double angles;
angles = Math.cos( xCoord / Math.sqrt( xCoord*xCoord + yCoord*yCoord));
return angles;
}
public double radius ()
{
double radius;
radius = (yCoord*yCoord + xCoord*xCoord); //?
return radius;
}
public Point rotate90()
{
double rotated;
rotated = angles.angle + 90.0; //██████████ Error here ██████████
return rotated;
}
public double distanceFrom(Point other)
{
return 0;
}
}
答案 0 :(得分:3)
我认为你的意思是
rotated = angle() + 90.0;
除了我认为你会发现Math.cos使用弧度而不是度数,所以你不会得到你认为的结果。不应该是电弧cos,而不是余弦?这样的事情可能更像你正在寻找的东西:
public double angle()
{
return Math.atan2(ycoord, xcoord) * 180 / Math.PI;
}
如果您希望rotate90返回与当前点成90度的新Point,请将其更改为以下内容:
public Point rotate90()
{
return new CartesianPoint(-yCoord, xCoord);
}
答案 1 :(得分:1)
Java中的方法调用总是有尾随括号,即使它们没有任何参数:
rotated = angle() + 90.0;
答案 2 :(得分:0)
即使不需要参数,方法调用也需要括号。这与其他语言不同,例如groovy。
答案 3 :(得分:0)
直接回答您的问题:如果您希望能够从“角度”函数外部访问变量“角度”,则必须使其成为类变量。也就是说,在任何函数之外声明它,就像你声明了xCoord和yCoord一样。然后通过它的简单名称引用它,而不引用创建它的函数。
请注意,如果rotate90在调用angles()之前尝试引用角度,则角度将包含零(或您设置的任何默认值),并且不太可能有用。
我不清楚你到底想要完成什么。我认为你的意图是角度函数将采用反余弦,而不是余弦。