黑马程序员技术交流社区

标题: equals方法 [打印本页]

作者: 吴晓鹏    时间: 2019-7-24 14:52
标题: equals方法
equals方法的作用:
      Object类中的一个方法,用与比较对象地址值,返回true或flase
重写equals方法:
      当不想比较对象的地址值而想要比较对象的属性内容时,需要通过重写equals方法来实现
重写equals方法的方式:
       alt + insert  选择equals() and hashCode(),IntelliJ Default,一路next,finish即可
示例代码:
[Java] 纯文本查看 复制代码
class Student {
    private String name;
    private int age;

    public Student() {
    }

    public Student(String name, int age) {
        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 boolean equals(Object o) {
        //this -- s1
        //o -- s2
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;

        Student student = (Student) o; //student -- s2

        if (age != student.age) return false;
        return name != null ? name.equals(student.name) : student.name == null;
    }
}
public class ObjectDemo {
    public static void main(String[] args) {
        Student s1 = new Student();
        s1.setName("潘长江");
        s1.setAge(60);
        Student s2 = new Student();
        s2.setName("潘长江");
        s2.setAge(60);

        //比较两个对象的内容是否相同
        System.out.println(s1.equals(s2));
    }
}






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2