一个非常简单的Java问题

时间:2010-01-21 02:52:21

标签: java syntax

我正在尝试从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;
}

}

4 个答案:

答案 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()之前尝试引用角度,则角度将包含零(或您设置的任何默认值),并且不太可能有用。

我不清楚你到底想要完成什么。我认为你的意图是角度函数将采用反余弦,而不是余弦。