需求 通过 Comparable接口实现 计算两个学生中年龄较大的那一个
首先定义一个学生类。
有两个变量,姓名和年龄。
然后实现带参与无参的构造方法。
然后对姓名和年龄进行set和get方法
接着我们重写 ToString方法,方便后续输出
接着是关于Comparable,我们让我们的学生类 implements Comparable
然后再学生类里重写 CompareTo 方法
代码如下:
package com.test11; public class Student implements Comparable{ private String name; private int age; public Student(String name, int age) { this.name = name; this.age = age; } public Student() { } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public String toString() { return "Student{" + "name='" + name + ''' + ", age=" + age + '}'; } @Override public int compareTo(Student o) { return this.age-o.age; } }
然后是我们的测试类
我们写一个返回Comparable 类型的getMax方法,传入参数 c1、c2
用一个 result 去接收比较的结果值
若result>=0,则代表 c1>c2,我们return c1
反之 c2>c1 ,我们return c2
main方法中 我们new两个学生 调用 getMax方法
最终打印出,年龄较大的学生信息(通过重写的ToString)
代码如下:
package com.test11;
//Comparable 接口的简单实现
public class Demo {
public static void main(String[] args) {
Student s1 = new Student("张三", 15);
Student s2 = new Student("李四", 20);
Comparable max=getMax(s1,s2);
System.out.println(max);
}
public static Comparable getMax(Comparable c1, Comparable c2) {
int result = c1.compareTo(c2);
if (result >= 0) {
return c1;
} else {
return c2;
}
}
}



