在student类中,重写hashCode()和equals()方法,hashCode()的返回值是name的哈希值与age的和,equals()判断对象的name和age是否相同,相同则返回TRUE,不同则返回false
时间: 2023-07-16 18:14:03 浏览: 59
好的,可以参考下面的代码:
```java
public class Student {
private String name;
private int age;
// 构造方法
public Student(String name, int age) {
this.name = name;
this.age = age;
}
// getter 和 setter 方法
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;
}
// 重写 hashCode() 和 equals() 方法
@Override
public int hashCode() {
return name.hashCode() + age;
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj instanceof Student) {
Student s = (Student) obj;
return this.name.equals(s.getName()) && this.age == s.getAge();
}
return false;
}
}
```
在这个例子中,重写了hashCode()和equals()方法,hashCode()方法返回了name的哈希值与age的和,这里使用了String类的hashCode()方法。equals()方法判断两个对象的name和age是否相同,如果都相同则返回true,否则返回false。在这个例子中,还重写了Object类中的toString()方法,方便输出对象的信息。