黑马程序员技术交流社区
标题:
集合中用于比较对象的equals方法的问题。
[打印本页]
作者:
zhouxp3323
时间:
2012-3-30 17:37
标题:
集合中用于比较对象的equals方法的问题。
class Person{
private String name;
private int age;
public boolean equals(Object obj){
if(!(obj instanceof Person)){
return false;
}
Person p = (Person)obj;
System.out.println(this.name+"..."+p.name);
//这个this和p不是同一个吗?
return this.name.equals(p.name) && this.age==p.age;
}
}
一个集合中存Person对象的时候,判断他们名字和年龄是否相同的时候都会调用这个equals方法,它们中的this和p不都是指调用这个equals方法的Person对象吗?
为什么会写 System.out.println(this.name+"..."+p.name);
return this.name.equals(p.name) && this.age==p.age;
this和p不是指的同一个对象吗?
作者:
陈超
时间:
2012-3-30 17:54
本帖最后由 陈超 于 2012-3-30 17:55 编辑
不是指的同一个对象
this指的是调用equals(Object o)的Person实例对象,而p指的是通过传人参数后强制转换得到的Person实例对象
试想:如果是一个对象,这个比较还有意义吗
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2