java一个名为Point 的类模拟平面坐标的一个点。一个点可用x和y坐标描述。为该类编写一个无参数构造方法,用它创建坐标原点(0.0)。编写一个带两个参数的构造方法,用它创建任意点。为两个成员分别编写 setter 方法和 getter 方法。 A.为其编写一个public String toString0方法,调用该方法以下面格式返回 Point对象的坐标点:X=20.y=30。 B.为其编写两个重载的 distance()方法,分别计算点到原点的距离和两个点之间的距离。这两个方法的格式如下: public double distance0 //计算点到坐标原点的距离 public double distance(Point p)//计算自已到坐标点P的距离 C. 为其编写两个重载的 move方法,用于将点移到一个新的位置。这两个方法的格式如下:public Point move(double x,double y)//x 和y 是新点的坐标public Point move(Point p)// 将点移动到点P(2)通过上面的描述,画出该类UML 图。 (3)定义一个PointTest类,编写一个main0方法,声明两个Pint变量--start 和end.start 使用无参构造方法创建,然后使用 setter 方法将坐标修改为 (10.10)。end 对象使用带 参数构造方法创建,坐标点为(20.30)。 (4)在 main0方法中测试 toString()方法、distance0方法和 move0方法的使用。
时间: 2023-06-09 17:02:30 浏览: 545
很好,您想让我演示一个模拟平面坐标点的java类Point,并编写无参和有参构造函数、setter和getter方法、toString()方法、distance()方法和move()方法,随后以UML图的形式呈现,并在PointTest类中测试这些方法。是这样吗?
好的,下面是我的回答:
class Point {
private double x;
private double y;
public Point() { // 无参构造方法,创建坐标原点(0.0)
this.x = 0.0;
this.y = 0.0;
}
public Point(double x, double y) { // 带两个参数的构造方法,创建任意点
this.x = x;
this.y = y;
}
public void setX(double x) { // 设置x坐标
this.x = x;
}
public void setY(double y) { // 设置y坐标
this.y = y;
}
public double getX() { // 获取x坐标
return x;
}
public double getY() { // 获取y坐标
return y;
}
public String toString() { // 返回Point对象的坐标点,格式为X=20.y=30
return "X=" + x + ",y=" + y;
}
public double distance() { // 计算点到坐标原点的距离
return Math.sqrt(x * x + y * y);
}
public double distance(Point p) { // 计算自己到另一个点p的距离
double dx = x - p.getX();
double dy = y - p.getY();
return Math.sqrt(dx * dx + dy * dy);
}
public Point move(double x, double y) { // 将点移到新位置
this.x = x;
this.y = y;
return this;
}
public Point move(Point p) { // 将点移动到点P
this.x = p.getX();
this.y = p.getY();
return this;
}
}
下面是该类的UML图:
```
+----------------------+
| Point |
+----------------------+
| - x: double |
| - y: double |
+----------------------+
| + Point() |
| + Point(x: double, y: double)|
| + setX(x: double) |
| + setY(y: double) |
| + getX(): double |
| + getY(): double |
| + toString(): String |
| + distance(): double |
| + distance(p: Point): double |
| + move(x: double, y: double): Point |
| + move(p: Point): Point |
+----------------------+
```
最后,这是一个使用Point类的简单测试程序:
public class PointTest {
public static void main(String[] args) {
Point start = new Point(); // 无参构造方法创建坐标原点
start.setX(10.0); // 修改x坐标为10.0
start.setY(10.0); // 修改y坐标为10.0
System.out.println("start: " + start);
Point end = new Point(20.0, 30.0); // 用有参构造方法创建点(20.0, 30.0)
System.out.println("end: " + end);
System.out.println("Distance from start to origin: " + start.distance());
System.out.println("Distance from start to end: " + start.distance(end));
start.move(50.0, 50.0);
System.out.println("start after move: " + start);
end.move(start);
System.out.println("end after move: " + end);
}
}
输出如下:
start: X=10.0,y=10.0
end: X=20.0,y=30.0
Distance from start to origin: 14.142135623730951
Distance from start to end: 22.360679774997898
start after move: X=50.0,y=50.0
end after move: X=50.0,y=50.0
阅读全文