要求:編寫一個程序。程序中定義一個類circle,其中有數據成員radius;創建一個有5個circle型元素的數組,其radius值分別為2、10、8、4、121、調用Arrays.sort()給這個數組排序。
import java.util.*;
public class Circle implements Comparable//要對類中成員變量必須實現實現對Comparable的接口
{
private double radius;
public Circle(double radius)//構造方法
{
this.radius=radius;
}
public void setr(double radius)
{
this.radius=radius;
}
public double getr()
{
return this.radius;
}
@Override
public int compareTo(Object o) //重載方法
{
//我主要是卡在了這里,不知道如何重載方法,后來通過看sort方法源代碼發現只要return1,0,-1就能自動排序
Circle inner = (Circle)o;
if(inner.radius>this.radius) return -1;
else if(inner.radius<this.radius) return 1;
else return 0;
}
}
public class Main16
{
public static void main(String[] args)
{
Circle[] arr = { new Circle(2), new Circle(10), new Circle(8), new Circle(4), new Circle(12) };
Arrays.sort(arr);
for(int i=0;i<5;i++)
{
System.out.println(arr[i].getr());
}
}
}