编写一个Java程序,创建Circle类, 有常量PI, 有数据成员半径, 构造函数完成 初始化半径。 (1)主函数中创建Circle对象数组, 完善Circle类,支持按面积排序。 (2)完善Circle类, 支持按面积判断两个圆对象是否相等。(3)支持indexof()的方法, 支持在圆对象数组中找到面积一样大的圆。要求用两种方法
时间: 2023-03-25 14:03:14 浏览: 252
我可以回答这个问题。以下是Java程序:
```java
import java.util.Arrays;
public class Circle {
public static final double PI = 3.14159265358979323846;
private double radius;
public Circle(double radius) {
this.radius = radius;
}
public double getRadius() {
return radius;
}
public double getArea() {
return PI * radius * radius;
}
public int compareTo(Circle other) {
return Double.compare(this.getArea(), other.getArea());
}
public boolean equals(Circle other) {
return Double.compare(this.getArea(), other.getArea()) == ;
}
public static int indexOf(Circle[] circles, Circle target) {
for (int i = ; i < circles.length; i++) {
if (circles[i].equals(target)) {
return i;
}
}
return -1;
}
public static void sortByArea(Circle[] circles) {
Arrays.sort(circles);
}
public static void main(String[] args) {
Circle[] circles = new Circle[3];
circles[] = new Circle(2.);
circles[1] = new Circle(3.);
circles[2] = new Circle(1.);
sortByArea(circles);
for (Circle circle : circles) {
System.out.println(circle.getArea());
}
Circle target = new Circle(9.);
int index = indexOf(circles, target);
System.out.println(index);
}
}
```
这个程序创建了一个Circle类,有常量PI和数据成员半径,构造函数完成初始化半径。它支持按面积排序,支持按面积判断两个圆对象是否相等,支持indexOf()方法,支持在圆对象数组中找到面积一样大的圆。sortByArea()方法使用Arrays.sort()方法按面积排序。indexOf()方法遍历圆对象数组,找到面积一样大的圆并返回它的索引。在主函数中,创建了一个Circle对象数组,按面积排序并输出每个圆的面积,然后找到一个面积为9.的圆并输出它的索引。
阅读全文