/*
* 实现一个接口
* 重写一个 方法
* */
public class Vedio implements Cloneable{
private String name;
private Date createTime;
@Override
protected Object clone() throws CloneNotSupportedException {
return super.clone();
}
public Vedio() {
}
public Vedio(String name, Date createTime) {
this.name = name;
this.createTime = createTime;
}
public Vedio(Date createTime) {
this.createTime = createTime;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
@Override
public String toString() {
return "Vedio{" +
"name='" + name + '\'' +
", createTime=" + createTime +
'}';
}
}
创建一个克隆对象并且测试
//浅克隆:时间属性没有被克隆
public class Bili {
public static void main(String[] args) throws CloneNotSupportedException {
//创建一个原型对象
Date date = new Date();
Vedio v1 = new Vedio("小兜正能量", date);
Vedio v2 = (Vedio)v1.clone();
System.out.println("v1======>"+v1);
System.out.println("v2======>"+v2);
System.out.println("-----------------------------------");
date.setTime(2121212121);
System.out.println("v1======>"+v1);
System.out.println("v2======>"+v2);
}
}
运行结果
2、深克隆代码演示
创建一个视频类(重写了clone方法,属性也克隆过去了)
/*
* 实现一个接口
* 重写一个 方法
* */
public class Vedio implements Cloneable{
private String name;
private Date createTime;
@Override
protected Object clone() throws CloneNotSupportedException {
Object obj = super.clone();
//实现深克隆 序列化,反序列化
Vedio v = (Vedio) obj;
//将时间属性也进行一次克隆
v.createTime= (Date) this.createTime.clone();
return obj;
}
public Vedio() {
}
public Vedio(String name, Date createTime) {
this.name = name;
this.createTime = createTime;
}
public Vedio(Date createTime) {
this.createTime = createTime;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
@Override
public String toString() {
return "Vedio{" +
"name='" + name + '\'' +
", createTime=" + createTime +
'}';
}
}
创建一个克隆对象并且测试
//深克隆:属性也被克隆了
public class Bili {
public static void main(String[] args) throws CloneNotSupportedException {
//创建一个原型对象
Date date = new Date();
Vedio v1 = new Vedio("小兜正能量", date);
Vedio v2 = (Vedio)v1.clone();
System.out.println("v1======>"+v1);
System.out.println("v2======>"+v2);
System.out.println("-----------------------------------");
date.setTime(2121212121);
System.out.println("v1======>"+v1);
System.out.println("v2======>"+v2);
}
}