我来举个例子吧,下面是一个标准的学生类,equals方法是重写的,如果不重写此方法,则调用此方法为默认继承的Object的equals方法,比较的是对象的地址值是否相同,我们知道不同的对象肯定有不同的地址值,所以此方法不重写一般没什么用。 下面例子重写后比较的是学生类中 的名字和年龄属性是否相同。
- public class Student {
- private String name;
- private int age;
- public Student() {
- super();
- }
- public Student(String name, int age) {
- super();
- this.name = name;
- this.age = age;
- }
- 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;
- }
- @Override
- public String toString() {
- return "Student [name=" + name + ", age=" + age + "]";
- }
- @Override
- public boolean equals(Object obj) {
- if (this == obj)
- return true;
- if (obj == null)
- return false;
- if (getClass() != obj.getClass())
- return false;
- Student other = (Student) obj;
- if (age != other.age)
- return false;
- if (name == null) {
- if (other.name != null)
- return false;
- } else if (!name.equals(other.name))
- return false;
- return true;
- }
-
- }
复制代码 |