1. 定义一个学生类Student,具有年龄age和姓名name两个属性,并通过实现Comparable接口提供比较规则(返回两个学生的年龄差), 定义测试类Test,在测试类中定义测试方法Comparable getMax(Comparable c1, Comparable c2)完成测试。
时间: 2024-03-25 10:39:24 浏览: 120
好的,我来为您编写代码。请注意,我已经实现了学生类Student并实现了Comparable接口进行比较,同时在测试类Test中定义了测试方法getMax来测试比较规则。以下是完整的代码:
```java
// 学生类
public class Student implements Comparable<Student> {
private int age;
private String name;
public Student(int age, String name) {
this.age = age;
this.name = name;
}
public int getAge() {
return age;
}
public String getName() {
return name;
}
@Override
public int compareTo(Student o) {
return this.age - o.age;
}
}
// 测试类
public class Test {
public static void main(String[] args) {
Student s1 = new Student(18, "Tom");
Student s2 = new Student(20, "Jerry");
Comparable max = getMax(s1, s2);
System.out.println("年龄较大的学生是:" + ((Student)max).getName());
}
public static Comparable getMax(Comparable c1, Comparable c2) {
return c1.compareTo(c2) > 0 ? c1 : c2;
}
}
```
在这个例子中,我们定义了一个学生类Student,具有年龄age和姓名name两个属性,并实现了Comparable接口来提供比较规则。在测试类Test中,我们定义了测试方法getMax,它可以接收任何实现了Comparable接口的对象,并返回其中较大的那个对象。在main方法中,我们创建了两个学生对象s1和s2,并使用getMax方法来比较它们的年龄,最后输出年龄较大的学生的姓名。
阅读全文