Comparable接口
接口
定义:接口是一种与类相类似的结构,用于为对象定义共同的操作。
目的:指明相关或者不相关的对象的共同行为
java中定义接口的方法:
modifier interface InterfaceName{
/** Constant declarations **/
/** Abstract method signatures **/
}
接口注意事项:
1.不能使用new操作符创建接口的实例
2.需要使用implements关键字让对象所属的类实现这个接口
Comparable接口
comparable接口中定义了compareTo方法,用于比较对象。
接口定义:
public interface Comparable<E>{
public int compareTo(E o);
}
实例
public class Student implements Comparable<Student>{
private String username;
private int age;
@Override
public String toString() {
return "Student{" +
"username='" + username + '\'' +
'}';
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public int compareTo(Student o){
return this.getAge() - o.getAge();
}
}
public class TestCompare {
//这是一个main方法,是程序的入口
public static void main(String[] args) {
Student st1 = new Student();
Student st2 = new Student();
st1.setAge(19);
st1.setUsername("Xiaoming");
st2.setAge(20);
st2.setUsername("lisi");
Comparable max = getMax(st1, st2);
System.out.println(max);
}
public static Comparable getMax(Comparable c1, Comparable c2){
// 如果result<0,则c1比c2小
// 如果result>0,则c1比c2大
// 如果result=0,则c1和c2一样大
int result = c1.compareTo(c2);
if (result>0){
return c1;
}
else{
return c2;
}
}
}
结果:Student{username=‘lisi’}
关键字implements表示Student类继承了Comparable接口中的所有常量,并实现了该接口的方法。