黑马程序员技术交流社区
标题:
ArrayListTest2中的equals问题
[打印本页]
作者:
王瑞
时间:
2013-3-26 21:11
标题:
ArrayListTest2中的equals问题
本帖最后由 王瑞 于 2013-3-27 12:35 编辑
ArrayListTest2中的equals,里面的接受对象为什么不直接写成person?
class Person
{
private String name;
private int age;
Person(String name,int age)
{
this.name = name;
this.age = age;
}
public boolean equals(Object obj)//那为什么这里的equals(Object obj)不直接写成equals(Person p2)呢?下面就不用强制转换类型了。是为了照顾集合中万一有不是person类型的元素输入吗?
{
if(!(obj instanceof Person))
return false;
Person p = (Person)obj;//这里强制将obj转换成person类型
return this.name.equals(p.name) && this.age == p.age;
}
public String getName()
{
return name;
}
public int getAge()
{
return age;
}
}
复制代码
作者:
itserious
时间:
2013-3-26 21:16
大哥,你还没有这个equals方法的真正目的。
这个equals方法是你重新写Object的 equals方法
你把它改成了person 那还叫重写吗?
你不重写的话,你调用的就会是Object的equals方法了。
Object 的equals方法比较的是地址值。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2