📄 chap5-1.txt
字号:
// 程序5-1
interface Sortable{ // 定义一个接口
int Compare(Sortable s);
}
class Sort{ // 定义一个排序类,其中仅包含一个静态方法
public static void SelectSort(Sortable a[ ]){
int i, j, k;
Sortable temp;
for(i=0;i<a.length-1;i++){ // 选择排序
k=i;
for(j=i+1;j<a.length;j++)
if(a[k].Compare(a[j])<0)
k=j;
temp=a[i]; a[i]=a[k]; a[k]=temp;
}
}
}
class Student implements Sortable{ // 定义一个学生类
private int score;
Student(int x){ // 构造函数
score=x;
}
public int Compare(Sortable s){ // 实现接口Sortable中的方法
Student st=(Student)s; // 类型强制转换
return score-st.score;
}
public String toString( ){ // 将数据转换成一个字符串
return Integer.toString(score);
}
}
class Rectangle implements Sortable{ // 矩形类也实现了接口
private int length,width; // 矩形的长和宽
Rectangle(int x, int y){ // 构造函数
length=x;width=y;
}
int area( ){ return length*width; }
public int Compare(Sortable s){ // 实现接口Sortable中的方法
Rectangle rec=(Rectangle)s; // 类型强制转换
return area( )-rec.area( );
}
public String toString( ){ // 将面积转换成一个字符串
return Integer.toString(area( ));
}
}
public class hello {
public static void main(String args[ ]) {
Student stud[ ]=new Student[15];
int i;
for( i=0;i<stud.length;i++) // 随机产生15个数
stud[i]=new Student((int)(Math.random( )*100));
Sort.SelectSort(stud); // 排序
System.out.print("按成绩排序:" );
for( i=0;i<stud.length;i++) // 输出结果
System.out.print(stud[i].toString( )+" ");
Rectangle R[ ]=new Rectangle[10];
for( i=0;i<R.length;i++) // 随机产生20个数
R[i]=new Rectangle((int)(Math.random( )*10),(int)(Math.random( )*10));
Sort.SelectSort( R ); // 排序
System.out.print("\n按面积排序:" );
for( i=0;i<R.length;i++) // 输出结果
System.out.print(R[i].toString( )+" ");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -