>>equals()的默认行为是比较句柄
是因为Object类中的equals()方法是比较句柄的,而Object类是所有类隐含的父类,所以如果你不覆盖类中的equals()方法,那它就是比较句柄的。
>>大多数JAVA类库都实现了equals()所以它实际比较的是对象的内容,而不是句柄
你也可以自己重载equals(),来自己定义的相等条件。 class value{
int i;
public boolean equals(value v) {
if (this.i == v.i)
return true;
else
return false;
}
}
public class EqualsMethod{
public static void main(String[] args){
value v1=new value();
value v2=new value();
v1.i=v2.i=100;
System.out.println(v1.equals(v2));
}
}
是因为Object类中的equals()方法是比较句柄的,而Object类是所有类隐含的父类,所以如果你不覆盖类中的equals()方法,那它就是比较句柄的。
>>大多数JAVA类库都实现了equals()所以它实际比较的是对象的内容,而不是句柄
你也可以自己重载equals(),来自己定义的相等条件。 class value{
int i;
public boolean equals(value v) {
if (this.i == v.i)
return true;
else
return false;
}
}
public class EqualsMethod{
public static void main(String[] args){
value v1=new value();
value v2=new value();
v1.i=v2.i=100;
System.out.println(v1.equals(v2));
}
}
解决方案 »
- 连接到数据库失败,不知道哪里代码出错?
- Java中,如何实现多文档界面中内部窗体与菜单间的联系以及如何设置背景图片详解
- 菜鸟问题,请教
- java解释器和java虚拟机有什么区别?
- 新手求救,我在看JAVA核心编程II的电子版,里面用到corejava包,哪个大虾能发给我一个
- 关于RMI的简单问题
- 谁告诉我这段代码的执行过程,谢谢!
- 请问大家一个低级的问题:在windows里显示对话框的函数是AfxMessageBox("OK"),在纯java里怎么用,还要引用什么包吗?
- 问: 如何直接用JDBC连接不在同一主机上DB2数据库
- 调用repaint后有打印,但是却没有重画
- 誰知道ENVY 是甚麼?
- 高分请教!
但是给出equals方法的原因就是为了不同的类可以重载它来实现比较语义
也谢谢 Polarislee(北极星)