A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 吴晓鹏 初级黑马   /  2019-7-24 14:52  /  1214 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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));
    }
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马