黑马程序员技术交流社区

标题: 重写person类 [打印本页]

作者: 路途遥远    时间: 2015-6-15 21:18
标题: 重写person类
如何重写 equals (); 为啥要重写啊???
作者: 少年闰土    时间: 2015-6-15 21:23
因为Object类中equals方法的功能不能满足日常使用,所以有需要要重写成自己需要的功能,这个在集合中比较有用
作者: rose_xiaomei    时间: 2015-6-16 00:06
你这个问题应该是学习视频中Collection中的那部分,之所以要重写equals方法,是因为它默认提供的方法是判断对象是否相同,你想要的是name,age都不同才能判断两人是否是同一个人,每次new一个新对象这里程序自己判断的是每次new每次对象都不同,这时候就要自己重写方法,加入判断条件才能达到自己想要的目的。
作者: yujinpinh    时间: 2015-6-16 09:46
默认equals在比较两个对象时,是看他们是否指向同一个地址的。但有时,我们希望两个对象只要是某些属性相同就认为他们的quals为true。比如:Person p1 = new Person(1,"name1");Person p2 = new Perso(1,"name1");如果不重写equals的话,他们是不相同的,所以我们要重些equals,判断只要他们的id和名字相同equals就为true,在一些集合里有时也这样用,集合里的contain也是用equals来比较
作者: Foundmoon    时间: 2015-6-16 09:50
因为equals方法在底层经常被类似contains方法调用,或者在集合中,会被底层调用




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2