java - 如何移动一个点并打印新位置?

标签 java

我是 Java 的新手,我收到了一项任务,要求我编写一个名为 PointerTester 的类,该类具有两个 Points 作为实例变量。我需要在坐标 (0.0,0.0) 处初始化其中一个,在 (10.0,12.0) 处初始化其中一个。然后我需要将每个点在 x 方向移动 +2.0,在 Y 方向移动 -3.0,查询这些点的坐标,并打印出值。

到目前为止我有这个:

public class PointerTester{
/*instance variables*/
    private double pointOneX;
    private double pointOneY;
    private double pointTwoX;
    private double pointTwoY;
    private double deltaX;
    private double deltaY;

    /*constructor to initialize*/
    public PointerTester (){
        pointOneX = 0.0;
        pointOneY = 0.0;
        pointTwoX = 10.0;
        pointTwoY = 12.0;
        deltaX = 2.0;
        deltaY = -3.0;
    }

    /*constructor to initialize to specific value*/
    PointerTester(double pointOneX, double pointOneY, double pointTwoX, double pointTwoY){
        this.pointOneX = pointOneX;
        this.pointOneY = pointOneY;
        this.pointTwoX = pointTwoX;
        this.pointTwoY = pointTwoY;
    }

    /*command to change value*/
    public void moveBy(double deltaX, double deltaY){
        this.pointOneX = this.pointOneX + deltaX;
        this.pointOneY = this.pointOneY + deltaY;
        this.pointTwoX = this.pointTwoX + deltaX;
        this.pointTwoY = this.pointTwoY + deltaY;
    }

    /*Queries*/
    public double getOneX(){
        return pointOneX;
    }
    public double getOneY(){
        return pointOneY;
    }
    public double getTwoX(){
        return pointTwoX;
    }
    public double getTwoY(){
        return pointTwoY;
    }
    /*print values*/
    public static void main(String[] args){
        PointerTester pointOne = new PointerTester();
        PointerTester pointTwo = new PointerTester();
        System.out.println("Point One after move (" + pointOne + ")");
        System.out.println("Point Two after move (" + pointTwo + ")");
    }
}

我不知道如何正确输出值,或者我在处理这个问题时是否完全错误。

编辑 看来我需要使用我最初认为应该分开的这段代码

public class Point{
    public double x;
    public double y;


    public Point(double x, double y){
        this.x = x;
        this.y = y;
    }
    public void setX(double x){
        this.x = x;
    }
    public void setY(double y){
        this.y = y;
    }
    public double getX(){
        return x;
    }
    public double getY(){
        return y;
    }
}

如何将其合并到我的代码中?

最佳答案

我认为开始之前,您应该有一个名为“Point”的单独类,它封装了 X 和 Y 值,并包含一个“moveBy”方法。它还可以实现“toString()”,这样“System.out.println”会为它打印一些不错的东西。 [编辑:或者只使用 java.awt.Point。]

除此之外,我会把它留给你做功课。

关于java - 如何移动一个点并打印新位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7465502/

相关文章:

java - Throwable.initCause() 并通过构造函数设置原因 : why are we limited to set a single time the cause?

java - 在不使用主键的情况下使用 hibernate 获取数据库记录

java - 替代 mvn spring-boot :run

java - 如何根据条件返回 map 的键?

java - Spring JPA 保存 transient 实体

java - 在 For 循环中执行递归

java - 发生 JNI 错误(java 通过 cmd)

java - 如何从屏幕的任何位置拖动底页?

java - 如何将字符串值作为json对象存储在mongodb中?

java - 连接超时页面