Java equals方法学习
阅读原文时间:2022年04月18日阅读:1
  • 通过某个特征值来判断两个对象是否“等价”,当这两个对象等价时,判断结果为true,否则结果为false。

  • Object类(Java的“对象世界”的根)中实现的equals方法,就是把“特征值”设定为“对象引用”来进行判断等价性的,因此可以得知,Object类中equals方法只是简简单单地返回this引用和被判断的obj的引用的“==运算”的值。

  • 重写equals方法常规步

    //方法1
    public boolean equals(Object o) {
    if (this == o) return true;
    if (o == null || !(o instanceof Person)) return false;
    Student student = (Student) o; //强转是因为o暂时的编译时类型还是object类型,不然编译不通过。
    return ID == student.ID;
    }

    //方法2

  • 其中用到的有getClass()方法和instanceof    后者会考虑是否是该类父类的实例,前者只考虑类的名称是否相同。

参考:

1.

Java的equals方法实现及其细节

2.

getClass()和instanceof以及类的equals方法

3.廖雪峰-Java-多态