对象克隆技术
11.11对象克隆技术
【例11.37】对象的克隆操作
对象所在的类中必须实现Cloneable接口才可以完成对象的克隆操作。
1.clone:深度复制【指针不变,内容变】
2.p2=p1:浅度复制【指针指向而已】
package jiaqi;
//必须实现接口
class Person1 implements Cloneable
{
private int age = 0 ;
private String name = null ;
public Person1(String name,int age)
{
this.age = age ;
this.name = name ;
}
//只实现一个set
public void setname(String name)
{
this.name=name;
}
@Override
public String toString()
{
return this.name+"\t"+this.age;
}
@Override
//必须复写
protected Object clone() throws CloneNotSupportedException
{
return super.clone();
}
}
public class demo348_1
{
public static void main(String[] args) throws Exception
{
Person1 p1 = new Person1("zhangsan",3);
Person1 p2 = (Person1) p1.clone();
p2.setname("wangwu");
System.out.println(p1);
System.out.println(p2);
}
}