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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© XXXRUI 中级黑马   /  2016-5-31 22:54  /  890 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

请大神做详细的解答,谢谢!

9 个回复

倒序浏览
一般的,equals方法是比较引用类型的内存地址,也就是比较两个对象是否是同一个对象,但我们需要比较的是两个对象的内容是否相同,功能是不一样的,所以重写equals方法改变它具体的比较功能。
回复 使用道具 举报 1 0
赞同楼上
回复 使用道具 举报
为了实现需要的功能,所以重写这个方法.
回复 使用道具 举报
sishuidliunian 发表于 2016-5-31 22:59
一般的,equals方法是比较引用类型的内存地址,也就是比较两个对象是否是同一个对象,但我们需要比较的是两 ...

总结得挺好的,就是这个原因
回复 使用道具 举报
受教受教
回复 使用道具 举报
你这问题问的·······
回复 使用道具 举报
默认equals在比较两个对象时,是看他们是否指向同一个地址的。
但有时,我们希望两个对象只要是某些属性相同就认为他们的quals为true。比如:
Student s1 = new Student(1,"name1");
Student s2 = new Student(1,"name1");
如果不重写equals的话,他们是不相同的,所以我们要重些equals,判断只要他们的id和名字相同equals就为true,在一些集合里有时也这样用,集合里的contain也是用equals来比较
回复 使用道具 举报
收藏收藏收藏收藏
回复 使用道具 举报
记录一下
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马