添加求租客户信息的运行结果如图 4-14 所示。 【实践训练】 1. 定义抽象类 Shape,其中包含抽象方法 double getPeremeterO求 周长和 double getArea0求面积。 定义一个矩形类,继承此抽象类,并自行扩充成员变量和方法,定义一个方法 一次直接显示长和宽、周长和面积。 定义- 一个测试类,测试矩形类。 2. 定义一个按口 CompareObject,具有方法 compare To0用于比较两个对象。 定义一个类 Position 从 CompareObject 派生而来,有x和y属性表示其坐标, 该类实现 compareTo0方法,用于比较两个对象距离原点(0,0的距离。 定义测试类测试 Position 类的 compare To0方法。
时间: 2023-12-03 14:43:54 浏览: 73
抱歉,我无法看到您提到的图示。但我可以为您提供实践训练的代码示例:
1. Shape 抽象类
```java
public abstract class Shape {
public abstract double getPerimeter();
public abstract double getArea();
}
```
2. Rectangle 矩形类
```java
public class Rectangle extends Shape {
private double width;
private double height;
public Rectangle(double width, double height) {
this.width = width;
this.height = height;
}
public void displayInfo() {
System.out.println("Width: " + width);
System.out.println("Height: " + height);
System.out.println("Perimeter: " + getPerimeter());
System.out.println("Area: " + getArea());
}
@Override
public double getPerimeter() {
return 2 * (width + height);
}
@Override
public double getArea() {
return width * height;
}
}
```
3. CompareObject 接口
```java
public interface CompareObject {
int compareTo(Object o);
}
```
4. Position 类
```java
public class Position implements CompareObject {
private int x;
private int y;
public Position(int x, int y) {
this.x = x;
this.y = y;
}
@Override
public int compareTo(Object o) {
if (o instanceof Position) {
Position p = (Position) o;
double distance1 = Math.sqrt(x * x + y * y);
double distance2 = Math.sqrt(p.x * p.x + p.y * p.y);
if (distance1 < distance2) {
return -1;
} else if (distance1 > distance2) {
return 1;
} else {
return 0;
}
}
return 0;
}
}
```
5. 测试类
```java
public class Test {
public static void main(String[] args) {
// 测试矩形类
Rectangle rectangle = new Rectangle(3, 4);
rectangle.displayInfo();
// 测试 Position 类的 compareTo 方法
Position p1 = new Position(3, 4);
Position p2 = new Position(1, 2);
System.out.println(p1.compareTo(p2));
System.out.println(p2.compareTo(p1));
System.out.println(p1.compareTo(new Object()));
}
}
```
阅读全文