使用getY()和getX()计算2点之间的距离

时间:2014-11-22 22:55:16

标签: java object encapsulation points

我正在尝试创建一个计算两个Point对象之间距离的方法:

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()) + 
                                   ^

1 个答案:

答案 0 :(得分:3)

问题是你实际上没有创建你的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