1.清楚对象克隆的操作结构
2.巩固接口的作用
对象克隆即对象复制,在Object类中提供如下方法
protected Object clone() throws CloneNotSupport
此方法上抛出一个"CloneNotSupportException"异常,如果要实现对象克隆的类,没有实现Cloneable接口就会抛出这个异常。但是Cloneable接口看不见方法,此为标识接口,表示一种操作能力。
class Book implements Cloneable{//表示此类对象可以被克隆
private String title;
private double price;
public Book(String title,double price){
this.title=title;
this.price=price;
}
/**
* @param title the title to set
*/
public void setTitle(String title) {
this.title = title;
}
@Override
public String toString() {
return "name:"+this.title+"price"+this.price;
}
@Override
public Object clone() throws CloneNotSupportedException {//将protected华为public 表示支持对象克隆
return super.clone();//调用父类的clone方法
}
}
public class TestDemo{
public static void main(String[] args) throws Exception{
Book bookA=new Book("Java", 79.8);
Book bookB=(Book)bookA.clone();
bookB.setTitle("JSP");
System.out.println(bookA);
System.out.println(bookB);
}
}
对象克隆的操作就这样完成了。并且是两个不同的对象。
对象克隆的操作,理论价值大于实际价值。
重点在于标识接口上,以后依然会见到没有方法的接口,表示能力,用于标识。
标识接口:没有任何方法定义,只用于标识