定义学生类覆盖Object中的方法实现Comparable接口
时间: 2023-05-29 07:02:34 浏览: 280
学生类覆盖Object中的方法实现Comparable接口可以如下所示:
```java
public class Student implements Comparable<Student> {
private int id;
private String name;
private int age;
public Student(int id, String name, int age) {
this.id = id;
this.name = name;
this.age = age;
}
// Getter and Setter methods
@Override
public String toString() {
return "Studnet [id=" + id + ", name=" + name + ", age=" + age + "]";
}
@Override
public int hashCode() {
return Objects.hash(id, name, age);
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null || getClass() != obj.getClass()) {
return false;
}
Student student = (Student) obj;
return id == student.id && age == student.age && Objects.equals(name, student.name);
}
@Override
public int compareTo(Student o) {
return this.id - o.id;
}
}
```
在上述代码中,我们定义了一个学生类(Student),该类实现了Comparable<Student>接口并覆盖了其中的compareTo方法,这是用于比较两个学生对象的方法。我们将比较规则定义为:根据学生的id属性进行升序排序。除此之外,我们还覆盖了Object类中的hashCode,equals和toString方法,以确保一个学生对象在不同的场合下具有唯一性。
阅读全文