创建一个Student类,包含id和name字段。重写equals()和hashCode()方法,使得如果两个Student对象id相同,则认为它们是相等的。
时间: 2024-09-11 22:13:13 浏览: 43
创建一个名为`Student`的类,我们可以按照以下步骤定义:
```java
public class Student {
private int id;
private String name;
// 构造函数
public Student(int id, String name) {
this.id = id;
this.name = name;
}
// 获取和设置id和name属性
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
// 重写equals()方法,根据id判断两个Student是否相等
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null || getClass() != obj.getClass()) {
return false;
}
Student otherStudent = (Student) obj;
return id == otherStudent.id;
}
// 重写hashCode()方法,确保基于id生成的哈希码一致
@Override
public int hashCode() {
return Objects.hash(id);
}
// 重写toString()方法,用于打印对象信息
@Override
public String toString() {
return "Student{" +
"id=" + id +
", name='" + name + '\'' +
'}';
}
}
```
在这个类中,我们首先定义了id和name成员变量,并提供构造函数以便初始化。然后,我们覆盖了equals()方法,使其仅当两个Student的id相同时返回true;覆盖hashCode()方法,保证基于id计算的哈希码保持一致性。最后,我们还提供了一个toString()方法,方便查看Student对象的信息。
阅读全文