一,本章目标
掌握对象克隆原理
掌握Object类对克隆的支持
掌握Clonable接口的作用
二,具体内容
对象克隆:对象的复制,完整地复制一个对象。依靠Object类。存在一个clone方法。
如果现在一个类的对象被克隆,则必须在此类中覆写此方法。而且还要实现Cloneable接口,此接口没有任何方法,所以此接口是一个标识接口,表示一种能力。
package 对象克隆技术;
public class Demo {
/**
* @param args
*/
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
Person p1 = new Person("张三");
Person p2 = (Person)p1.clone();
p2.setName("李四");
System.out.println(p1);
System.out.println(p2);
}
}
class Person implements Cloneable{
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Object clone() throws CloneNotSupportedException {
// TODO Auto-generated method stub
return super.clone();
}
public String toString() {
return "Person [name=" + name + "]";
}
public Person(String name) {
super();
this.name = name;
}
}
注意,复制的只是内容,对象的存放地址是不一样的。
三,总结
在以后的java类库中会经常看到Cloneable接口的出现。