我是 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/