我在这里有一个问题,我无法让我的代码工作。我会感激一些帮助,因为我尽我所能。 问题有点长,所以我提前道歉!
问题:设计一个名为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)));
}
}
答案 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;
}
最后一条建议:如果您不确定永远不会更改x
和y
,请不要将它们final
。万一你想再次使用这个类,可能会以某种方式改变x
和y
。