关于重写equal方法的一个疑问
有个疑问,重写equals方法后,总是返回一个true值,也就是说无论怎么比较他都是true值,并不是两个对象指向同一个内存空间了,那么比较还有什么意义呢。
有个疑问,重写equals方法后,总是返回一个true值,也就是说无论怎么比较他都是true值,并不是两个对象指向同一个内存空间了,那么比较还有什么意义呢。
2016-09-04
你理解的IF有问题,IF是当判断条件满足时输出返回值;
所以,老师的语句理解起来就是;
1(this==obj)判断两个对象是否指向同一对象,若是则不用后续判断直接输出 true;2.当前面条件不成立时(this和obj指向不同的地址)进行判断(obj==new)是否成立,若成立则不需要后续判断直接输出 false(因为你不是傻傻的在空的对象里去和空对象判断吧)3.当前面IF不成立时执行(getClass!=obj.getClass),若if成立则直接输出 false(属性的数量和类别都不同就不用考虑值是否相同了,走的路都不一样你还想两个人的人生一样吗?)4.若前面if不成立则将obj转化为dog确认(age!=other)是否成立(若前面if不成立则说明是不同的地址,且obj对象不是空的,且两个对象的类型一致)若成立输出false;若不成立恭喜你满足以上条件就可以定论两个对象的属性值一样还是指向不同的地址!
纯手打,满意给个最佳答案。0.0
举报