java 程序语言 二维空间

定义一个二维空间的点类,具体要求:

构造方法:

没有指定点的坐标,创建一个位于原点的对象

指定一个横坐标,创建一个位于第一、三象限对角线上的点

指定横坐标和纵坐标,创建一个位于指定坐标的点

属性:横坐标和纵坐标两个属性,都为整数

行为: 计算到指定点的距离

指定一个点时,计算当前点对象到该点的距离,指定点可以是一个点对象,也可以通过横坐标和纵坐标给出

指定两个点时,计算这两个点之间的距离。

定义一个测试类用于测试上面定义的Point类,测试类中试用上面不同的构造方法创建多个点对象,并调用Point类不同的distance方法计算两个点之间的距离。

博主尝试一下如下的代码是否符合您的要求:


public class Point {
    private int x;
    private int y;

    // 构造方法
    public Point() {
        this(0, 0);
    }

    public Point(int x) {
        this(x, x);
    }

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

    // 计算到指定点的距离
    public double distance(Point p) {
        int dx = x - p.x;
        int dy = y - p.y;
        return Math.sqrt(dx * dx + dy * dy);
    }

    public double distance(int x, int y) {
        return distance(new Point(x, y));
    }

    // 计算两个点之间的距离
    public static double distance(Point p1, Point p2) {
        return p1.distance(p2);
    }

    // getter 和 setter 方法
    public int getX() {
        return x;
    }

    public void setX(int x) {
        this.x = x;
    }

    public int getY() {
        return y;
    }

    public void setY(int y) {
        this.y = y;
    }
}

以下是一个测试类的实现,用于测试 Point 类的不同构造方法和 distance 方法:

public class TestPoint {
    public static void main(String[] args) {
        // 创建多个点对象并计算它们之间的距离
        Point p1 = new Point(); // (0, 0)
        Point p2 = new Point(3); // (3, 3)
        Point p3 = new Point(1, 2); // (1, 2)
        Point p4 = new Point(4, 5); // (4, 5)

        System.out.println("p1 和 p2 之间的距离:" + p1.distance(p2));
        System.out.println("p2 和 p3 之间的距离:" + p2.distance(p3));
        System.out.println("p3 和 p4 之间的距离:" + Point.distance(p3, p4));
        System.out.println("p4 和 (0, 0) 之间的距离:" + p4.distance(0, 0));
    }
}

以上代码中,我们通过创建不同的 Point 对象,并使用不同的参数来调用它们的 distance 方法,计算了它们之间的距离。此外,我们还使用了静态的 distance 方法,计算了两个指定点之间的距离。

参考GPT和自己的思路:好的,根据您的问题,我可以给您提供以下答复:

以下是Java的Point类的代码实现,其中包含三个构造方法和两个distance方法用于计算距离:

public class Point {
    private int x;
    private int y;

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

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

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

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

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

以下是测试类的代码实现,用于测试Point类的不同构造方法和计算距离的方法。

public class PointTest {
    public static void main(String[] args) {
        Point p1 = new Point(); // 创建一个位于原点的点对象
        Point p2 = new Point(5); // 创建一个位于第一、三象限对角线上的点
        Point p3 = new Point(3, 4); // 创建一个指定坐标的点

        // 计算两个点之间的距离
        System.out.println("p1 到 p3 的距离为:" + p1.distance(p3));
        System.out.println("p2 到 p3 的距离为:" + p2.distance(p3));

        // 计算指定坐标的点到当前点的距离
        System.out.println("指定坐标(6, 8) 到 p1 的距离为:" + p1.distance(6, 8));
        System.out.println("指定坐标(6, 8) 到 p2 的距离为:" + p2.distance(6, 8));
    }
}
该回答引用于gpt与OKX安生共同编写:
  • 该回答引用于gpt与OKX安生共同编写:

下面是一个符合要求的 Java 代码示例:

public class Point {
    private int x;  // 横坐标
    private int y;  // 纵坐标

    // 构造方法
    public Point() {
        this.x = 0;
        this.y = 0;
    }

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

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

    // 计算到指定点的距离
    public double distance(Point point) {
        int xDistance = this.x - point.getX();
        int yDistance = this.y - point.getY();
        return Math.sqrt(xDistance * xDistance + yDistance * yDistance);
    }

    public double distance(int x, int y) {
        return distance(new Point(x, y));
    }

    // 计算两个点之间的距离
    public static double distance(Point point1, Point point2) {
        return point1.distance(point2);
    }

    // getter 和 setter 方法
    public int getX() {
        return x;
    }

    public void setX(int x) {
        this.x = x;
    }

    public int getY() {
        return y;
    }

    public void setY(int y) {
        this.y = y;
    }
}

public class TestPoint {
    public static void main(String[] args) {
        // 创建点对象并计算距离
        Point p1 = new Point();
        Point p2 = new Point(3);
        Point p3 = new Point(4, 3);

        double d1 = p1.distance(p2);
        double d2 = p1.distance(p3);
        double d3 = Point.distance(p2, p3);

        System.out.println("d1 = " + d1);
        System.out.println("d2 = " + d2);
        System.out.println("d3 = " + d3);
    }
}

在上面的代码中,Point 类有三个构造方法分别对应了不同的创建点对象的方式。distance 方法用于计算当前点对象到指定点或另一点对象之间的距离。TestPoint 类则用于测试 Point 类的各个功能。