为什么要克隆对象
想对一个对象进行处理,又想保留原有的数据,就需要克隆对象了
克隆对象又分浅克隆和深克隆
浅克隆后的对象中非基本对象指向同一块内存,因此对这些非基本对象的修改会同时更改克隆前后的对象。
深克隆可以实现完全的克隆,可以用反射的方式或序列化的方式实现
代码实现
package object;
public class copy {
public static void main(String[] args){
//在Parson对象添入数据
Parson p=new Parson();
p.name="mali";
p.age=16;
//方法克隆对象
myOp to=new myOp();
Parson p2=to.copyOp(p);
System.out.println("p的属性:"+p.name+","+p.age);
System.out.println("p2的属性:"+p2.name+","+p2.age);
System.out.println(p==p2);
}
}
class Parson{
String name;
int age;
}
class myOp{
public Parson copyOp(Parson p){
Parson p2=new Parson();
p2.name=p.name;
p2.age=p.age;
return p2;
}
}
结果
p的属性:mali,16
p2的属性:mali,16
false