将以上代码用Java编写
时间: 2024-02-17 15:01:00 浏览: 22
好的,以下是用 Java 实现的 Point 类和 Rectangle 类:
```java
public class Point {
private int x;
private int y;
public Point(int x, int y) {
this.x = x;
this.y = y;
}
public String toString() {
return "(" + x + ", " + y + ")";
}
public int getX() {
return x;
}
public int getY() {
return y;
}
}
public class Rectangle {
private Point p1;
private Point p2;
public Rectangle(Point p1, Point p2) {
this.p1 = p1;
this.p2 = p2;
}
public int area() {
return Math.abs((p2.getX() - p1.getX()) * (p2.getY() - p1.getY()));
}
public String toString() {
return "(" + p1.toString() + ", " + p2.toString() + ")";
}
public Point[] vertices() {
int x1 = p1.getX();
int y1 = p1.getY();
int x2 = p2.getX();
int y2 = p2.getY();
Point[] vertices = {new Point(x1, y1), new Point(x1, y2), new Point(x2, y2), new Point(x2, y1)};
return vertices;
}
}
// 测试代码
public class Main {
public static void main(String[] args) {
Point p1 = new Point(1, 4);
Point p2 = new Point(6, 1);
Rectangle r = new Rectangle(p1, p2);
System.out.println("矩形的面积为:" + r.area());
System.out.println("矩形的顶点为:");
for (Point v : r.vertices()) {
System.out.println(v);
}
}
}
```
输出结果:
```
矩形的面积为:15
矩形的顶点为:
(1, 4)
(1, 1)
(6, 1)
(6, 4)
```
在这里,我们定义了一个 Java 类 Point 和 Rectangle,分别表示一个二维坐标点和矩形。Point 类包含 x 和 y 两个私有变量,以及 getX 和 getY 方法用于获取坐标值,toString 方法用于返回一个坐标点的字符串描述。Rectangle 类包含 p1 和 p2 两个私有变量,分别表示矩形的对角顶点,还包含 area 方法计算矩形面积,toString 方法返回一个矩形的字符串描述以及 vertices 方法返回一个 Point 类型的数组,表示矩形的四个顶点坐标。在测试代码中,我们创建了一个 Rectangle 实例,计算了其面积并输出四个顶点坐标。