博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
6-2 对象克隆
阅读量:6820 次
发布时间:2019-06-26

本文共 1956 字,大约阅读时间需要 6 分钟。

package interfacepage;import java.sql.Date;public class CloneTest {    /**     * @author:lixh     */    public static void main(String[] args) {        // TODO Auto-generated method stub                CloneModel cloneModel = new CloneModel();        CloneModel cp =  cloneModel.clone();        cp.setDate(Date.valueOf("2017-12-12"));                System.out.println(cp.getDate());        System.out.println(cloneModel.getDate());                if (cloneModel instanceof Cloneable) {            System.out.println("true");        }                    }        /**     * 对象克隆     *      * 1.克隆方法默认的是浅拷贝     *      * 深拷贝与浅拷贝:     * 深拷贝不仅拷贝对象的实例域,而且会拷贝对象的子对象     *      * 浅拷贝的子对象是共享的,如果子对象类型是不可变的,或者对象值不变,是安全的,但是往往会变,例如:Date     *      * 2.实现clone()方法必须实现 Cloneable 接口,不然会抛异常CloneNotSupportedException     *      * 3.clone方法是Object的方法,而且是protected,实现clone方法时需要将方法声明为public,这样任何方法都能访问。     * 不限于子类中才可以调用clone方法,不同包也可以调用。     *      * 4.Cloneable接口是标记接口,里面不含任何方法,他的唯一作用是在类查询时使用instanceof     */}
package interfacepage;import java.sql.Date;public class CloneModel  implements Cloneable{    private String name;    private Date date = new Date(System.currentTimeMillis());    private CloneModelSub sub;        public CloneModel() {        super();    }    public CloneModel(String name, Date date) {        super();        this.name = name;        this.date = date;    }            public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public Date getDate() {        return date;    }    public void setDate(Date date) {        this.date = date;    }    protected CloneModel clone(){        CloneModel cModel = null;        try {            cModel = (CloneModel)super.clone();            cModel.date = (Date)date.clone();        } catch (CloneNotSupportedException e) {            e.printStackTrace();        }        return cModel;    }    }

 

转载于:https://www.cnblogs.com/lxh520/p/8254177.html

你可能感兴趣的文章