Cloneable接口的使用,判断 equals()

小公鸡卡哇伊呀~ 2018-06-13 09:22:22
我改的一本书上的一小段代码:


public class House implements Cloneable {
private java.util.Date whenBuilt;
private int id;
private double area;
public House(int id, double area, java.util.Date date) {
this.id = id;
this.area = area;
this.whenBuilt = date;
}

@Override
public Object clone() throws CloneNotSupportedException {
return super.clone();
}

public static void main(String[] args) throws CloneNotSupportedException {
java.util.Date date = new java.util.Date();
House h1 = new House(1, 1750.50, date);
House h2 = (House)h1.clone();
System.out.println("h1 == h2 ? :" + (h1 == h2) );
System.out.println("h1 equals h2 ? :" + (h1.equals(h2)));
}
}


运行结果:
h1 == h2 ? :false
h1 equals h2 ? :false

h1 equals h2 为什么会是false呢?
...全文
138 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
谢谢,明白了。
stacksoverflow 2018-06-13
  • 打赏
  • 举报
回复
如果你没有覆写equals()方法,则调用的是Object的equals()方法,源代码如下: public boolean equals(Object obj) { return (this == obj); } 比较的也是两个对象的地址。 clone方法是在一个生成一个新对象,所以地址不同。

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧