Java设置坐标

时间:2014-02-10 22:15:24

标签: java coordinates

我在这里有一个问题,我无法让我的代码工作。我会感激一些帮助,因为我尽我所能。 问题有点长,所以我提前道歉!

问题:设计一个名为MyPoint的类来表示带有x和y坐标的点。该类包含以下内容:

- 用get方法

表示坐标的数据字段x和y

-a no-arg构造函数,它创建一个点(0,0)

- 构造具有指定坐标的点的构造

- 分别获取数据字段x和y的方法

- 一个名为distance的方法,返回从该点到另一个点的距离

- 一个名为distance的方法,它返回指定x0和y坐标的距此点的距离。

class Point
{
  private final double x;
  private final double y;

  public Point(double x, double y) {
    this.x = x;
    this.y = y;
  }

  public double getX() { return(this.x); }
  public double getY() { return(this.y); }

  public double distance(Point that) {
    return( this.distance(that.getX(), that.getY() ) );
  }

  public double distance(double x2, double y2) {
    // square root( ((x1-x2)^2) + ((y1-y2)^2) )

  }

  public static void main(String[] args) {
    System.out.println(new Point(10D, 10D).distance(new Point(0D,0D)));
  }
}

2 个答案:

答案 0 :(得分:0)

您不必用括号

包装表达式
 public double getX() { return(this.x); }
 public double getY() { return(this.y); }

这很好

 public double getX() { return this.x; }
 public double getY() { return this.y; }

你错过了没有param的默认构造函数。

要在构造函数中调用另一个构造函数,只需调用this(args)

即可

距离看Math类和函数sqrt(double a)和pow(double a,double b)

答案 1 :(得分:0)

这些是您正在寻找的Math类方法:Math.sqrt()Math.pow()

public double distance(double x2, double y2) {
    return Math.sqrt((Math.pow((this.x - x2), 2) + Math.pow((this.y - y2), 2)));
}

你忘记了空构造函数

public Point(){
    this.x=0;
    this.y=0;
}

最后一条建议:如果您不确定永远不会更改xy,请不要将它们final。万一你想再次使用这个类,可能会以某种方式改变xy