JAVA编程 数据的阴影复制是什么意思

来源:百度知道 编辑:UC知道 时间:2024/05/21 17:05:21

参考:

◆ 关于阴影和深度复制的问题

在MS.Net C#中有阴影和深度复制技术

shallow copy (Memberwise Clone)就是将对象的所有实例变量(instance variables)的值直接复制到另一个同类对象,这里的“值”,对于值类型来说就是具体的数值,对于引用类型来说就是对象的内存地址,也就是 shallow copy 之后,引用类型的变量引用的对象跟原对象引用的对象是同一个东西

deep copy 就是对引用类型的实例变量重复这个过程,直到完全分离为止。复制后,原对象与复制品没有任何交集

public class Content{
public int Val;
}

public class Cloner{
public Content MyContent=new Content();//Content类的一个实例MyContent,做为类Cloner的成员
public Cloner(int newVal)//重载类Cloner的构造函数
{
MyContent.Val=newVal;//将参数newVal的值赋给成员MyContent的字段Val
}

public object GetCopy()//深度复制方法
{
Cloner clonedCloner=new Cloner(MyContent.val);//使用了源Cloner对象中的Val字段,创建一个新Cloner对象
return clonedCloner;//并将其返回,完成深度复制
}
}