要求,定義一個接口類,然后對一個貓類中的分數(shù)進行排序,然后輸入排序后每只貓的年齡和分數(shù)
思路:
(1)有一個排序的對象->有一個接口(Sort)->里面要一個方法->還要有排序方法(冒泡排序)->接口的實現(xiàn)->排序
1.接口:
public interface Sort {
//需要做什么,功能,功能需要做什么
//聲明一個int類型的排序方法,需要兩個Object 名字分別為obj,obj1的的一位數(shù)組
public int sort(Object obj,Object obj1);
}
//定義一個類(實現(xiàn)功能)
class Test{
//定義一個Sort的s(便于接口的調(diào)用)
public Sort s;
//構(gòu)造方法,傳入 Sort型的變量
public Test (Sort s){
this.s = s;
}
//定義排序的方法
public Object[] paixu(Object[] obj){
//冒泡排序
for (int i = 0; i < obj.length-1; i++) {
for (int j = 0; j < obj.length-1-i; j++) {
//判斷大小
int result = s.sort(obj[j], obj[j+1]);
if (result>0) {
//定義空數(shù)組用于交換
Object temp=obj[j];
obj[j] = obj[j+1];
obj[j+1] = temp;
}
}
}
//obj是一個一維數(shù)組
return obj;
}
}
2測試類
import java.util.Arrays;
public class User {
public static void main(String[] args) {
//創(chuàng)建cat的對象
Cat cat = new Cat();
cat.age = 12;
cat.score = 13;
Cat cat1 = new Cat();
cat1.age = 10;
cat1.score = 14;
Cat cat2 = new Cat();
cat2.age = 6;
cat2.score = 12;
Cat cat3 = new Cat();
cat3.age = 19;
cat3.score = 3;
//創(chuàng)建一個數(shù)組用來存儲
Cat arr[] = {cat,cat1,cat2,cat3};
Com cm = new Com();
Test test = new Test(cm);//將cm傳入Test中
//創(chuàng)建一個新數(shù)組用來接收排序過后的數(shù)組
Object[] newArr = test.paixu(arr);//對arr進行排序
System.out.println(Arrays.toString(newArr));
}
}
//定義一個類 Cat
class Cat{
int age;
int score;
@Override
public String toString() {
return "年齡= " + this.age + "分數(shù)=" + score;
}
}
//Sort接口的實現(xiàn)類
class Com implements Sort{
@Override
public int sort(Object obj, Object obj1) {
Cat c=(Cat)obj;//obj轉(zhuǎn)換為Cat
Cat c1 = (Cat)obj1;
if (c.score>c1.score) {
return 1;//滿足條件執(zhí)行排序,result=1>0
}
return -1;
}
}
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者