同学你好,这里首先要明确两个对比对象的方式之间的区别:
“==”号用于对比两端的数值是否相同:如果两端为基本类型,那么对比数值。如果两端为对象类型,那么对比地址是否相同。(地址用于判断引用是否指向同一个对象)
equals方法仅仅可用于对比两个对象:如果对象类中没有重写过equals方法,那么使用Object类中的equals实现,功能与“==”号一致,对比两个对象的地址是否相同。如果对象类中重写过equals方法,则根据重写时的逻辑对比两个对象的内容是否相同。
综上所述,这里重写的目的是对比两个对象的内容是否相同,但是需要先判断是否是同一个对象自己和自己对比的情况,那么此处就应当使用“==”对比地址是否一致。
另外,同学这里报错是因为equals方法中再次调用自身equals方法,而自身equals方法还会调用自身equals方法,无穷无尽的的递归调用。
祝学习愉快~
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星