重写tostring和equals方法
时间: 2023-04-28 17:00:04 浏览: 111
重写toString方法是指在类中重新定义toString方法,以便在调用该方法时返回自定义的字符串表示形式。例如,如果我们有一个Person类,我们可以重写toString方法,以便返回该人的姓名和年龄,如下所示:
```
public class Person {
private String name;
private int age;
// 构造方法和其他方法省略
@Override
public String toString() {
return "Person{name='" + name + "', age=" + age + "}";
}
}
```
重写equals方法是指在类中重新定义equals方法,以便在比较两个对象是否相等时使用自定义的比较规则。例如,如果我们有一个Person类,我们可以重写equals方法,以便比较两个人的姓名和年龄是否相同,如下所示:
```
public class Person {
private String name;
private int age;
// 构造方法和其他方法省略
@Override
public boolean equals(Object obj) {
if (obj == null || !(obj instanceof Person)) {
return false;
}
Person other = (Person) obj;
return this.name.equals(other.name) && this.age == other.age;
}
}
```
需要注意的是,重写equals方法时需要遵循一些规则,例如:
- 对称性:如果a.equals(b)返回true,那么b.equals(a)也应该返回true。
- 自反性:a.equals(a)应该返回true。
- 传递性:如果a.equals(b)返回true,b.equals(c)也返回true,那么a.equals(c)也应该返回true。
- 一致性:如果a.equals(b)返回true,在a和b没有改变的情况下,多次调用a.equals(b)应该返回true。
阅读全文