Java 使用getY()和getX()计算两点之间的距离
我正在尝试创建一种方法来计算两点对象之间的距离:Java 使用getY()和getX()计算两点之间的距离,java,object,encapsulation,points,Java,Object,Encapsulation,Points,我正在尝试创建一种方法来计算两点对象之间的距离: public class Point { private double x; private double y; public Point (double x, double y) { this.x = x; this.y = y; } private static void main (String[] args) { Point p1 = new
public class Point {
private double x;
private double y;
public Point (double x, double y) {
this.x = x;
this.y = y;
}
private static void main (String[] args) {
Point p1 = new Point(5.0,6.0);
Point p2 = new Point(2.0,2.0);
double distance = Math.sqrt((p1.getX() - p2.getX()) * (p1.getX() - p2.getX()) +
(p1.getY() - p2.getY()) * (p1.getY() - p2.getY()));
System.out.println(distance);
}
}
当我试图编译它时,我不断得到错误信息,如:
Point.java:16: error: cannot find symbol
double distance = Math.sqrt((p1.getX() - p2.getX()) * (p1.getX() - p2.getX()) +
^
问题是您实际上还没有创建getter和setter方法(特别是getter方法)。在Java中,getter和setter方法不会自动为您创建;您必须自己显式地创建它们。因此,只需添加以下代码:
public double getX() {
return x;
}
public void setX(double x) {
this.x = x;
}
public double getY() {
return y;
}
public void setY(double y) {
this.y = y;
}
您也可以直接使用p1.x
,但最好使用getter和setter封装Point类的坐标(x和y)
还有
要使主方法工作,需要将其设置为
public
,而不是private
您的点类没有getX()
方法。