对象克隆类

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);
    }   
}
9003228-4f09119728c7a00c.png
image.png

对象克隆的操作就这样完成了。并且是两个不同的对象。
对象克隆的操作,理论价值大于实际价值。
重点在于标识接口上,以后依然会见到没有方法的接口,表示能力,用于标识。

标识接口:没有任何方法定义,只用于标识

猜你喜欢

转载自blog.csdn.net/weixin_34248118/article/details/87040367