Clone 说好的浅复制呢? 难道是我懵逼了!

沁海棠 2017-04-06 06:42:07
public class Clone implements Cloneable{
private String str;
private Date date;

public String getStr() {
return str;
}


public void setStr(String str) {
this.str = str;
}


public Date getDate() {
return date;
}


public void setDate(Date date) {
this.date = date;
}

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

}
public Clone(String str, Date date) {
super();
this.str = str;
this.date = date;
}


public static void main(String[] args) throws CloneNotSupportedException {
//构造一个Clone
Date d = new Date(13213145L);
Clone clone = new Clone("什么鬼",d);
//通过克隆出另一个对象
Clone clone2 = (Clone) clone.clone();

System.out.println(clone.getStr());
System.out.println(clone.getDate());

System.out.println(clone2.getStr());
System.out.println(clone2.getDate());

System.out.println(clone);
System.out.println(clone2);
//可以发现克隆出来的对象和原有的对象属性都相同,那么什么是浅复制,什么是复制
//clone.setStr("123");
clone.setDate(new Date());

System.out.println(clone.getStr());
System.out.println(clone.getDate());

System.out.println(clone2.getStr());
System.out.println(clone2.getDate());


}
}


不是说好浅复制么,难道是我又懵逼了?
...全文
96 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
沁海棠 2017-04-06
  • 打赏
  • 举报
回复
不是说克隆的Date指向的是同以对象么,那既然改了一个另一个为啥没变呢?是我哪里写错了!
沁海棠 2017-04-06
  • 打赏
  • 举报
回复
什么鬼 Thu Jan 01 11:40:13 CST 1970 什么鬼 Thu Jan 01 11:40:13 CST 1970 Prototype.Clone@64d78cb8 Prototype.Clone@357b7c1 什么鬼 Thu Apr 06 18:43:26 CST 2017 什么鬼 Thu Jan 01 11:40:13 CST 1970

62,614

社区成员

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

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