1• 定义抽象类 Shape,其中包含抽象方法 double getPeremeterO求周长和 doublegetAreaO求面积。 定义一个矩形类,继承此抽象类,并自行扩充成员变量和方法,定义一个方法 一次直接显不长和宽、周长和面积。 定义一个测试类,测试矩形类。 2.定义一个接口 CompareObject,具有方法compareTo0用于比较两个对象。 定义一个类 Position 从 CompareObject 派生而来,有×和y属性表示其坐标,该类实现 compareTo0方法,用于比较两个对象距离原点(0,0)的距离。 定义测试类测试 Position 类的 compareTo0方法。
时间: 2023-11-28 09:51:15 浏览: 114
1. 定义抽象类 Shape 和矩形类 Rectangle:
```java
public abstract class Shape {
public abstract double getPerimeter();
public abstract double getArea();
}
public class Rectangle extends Shape {
private double width;
private double height;
public Rectangle(double width, double height) {
this.width = width;
this.height = height;
}
public double getWidth() {
return width;
}
public double getHeight() {
return height;
}
public void displayInfo() {
System.out.println("长为:" + width + ",宽为:" + height + ",周长为:" + getPerimeter() + ",面积为:" + getArea());
}
@Override
public double getPerimeter() {
return 2 * (width + height);
}
@Override
public double getArea() {
return width * height;
}
}
```
2. 定义接口 CompareObject 和类 Position:
```java
public interface CompareObject {
public int compareTo(Object o);
}
public class Position implements CompareObject {
private double x;
private double y;
public Position(double x, double y) {
this.x = x;
this.y = y;
}
public double getX() {
return x;
}
public double getY() {
return y;
}
public double distanceFromOrigin() {
return Math.sqrt(x * x + y * y);
}
@Override
public int compareTo(Object o) {
if (o instanceof Position) {
Position p = (Position) o;
double distance1 = this.distanceFromOrigin();
double distance2 = p.distanceFromOrigin();
if (distance1 > distance2) {
return 1;
} else if (distance1 < distance2) {
return -1;
} else {
return 0;
}
}
return 0;
}
}
```
3. 定义测试类 Test:
```java
public class Test {
public static void main(String[] args) {
Rectangle rectangle = new Rectangle(5, 10);
rectangle.displayInfo();
Position p1 = new Position(3, 4);
Position p2 = new Position(1, 2);
System.out.println(p1.compareTo(p2));
}
}
```
运行结果:
```
长为:5.0,宽为:10.0,周长为:30.0,面积为:50.0
1
```
阅读全文