zoukankan      html  css  js  c++  java
  • (十三)对象克隆

    Object类实现了clone()方法(protected)。用户自己编写的类若想调用该方法,必须实现Cloneable接口,以此表明Object.clone()是合法的。

    如果对象中的域是引用数据类型,克隆的新对象的对应域和原来的域共同引用同一个对象。

    注:Cloneable是一个标记接口,其没有可实现的方法。如果不实现该接口,调用super.clone()会报CloneNotSupportedException的异常。

    浅拷贝

    直接使用Object.clone()方法克隆一个对象,如果对象含有引用数据类型的域,则克隆的对象和原来的对象共享这部分数据。

    class Emplyee implments Cloneable{
        public Employee clone() trows CloneNotSupportedException{
            Employee e = (Employee) super.clone();return e;  
        }       
    }    

    深拷贝

    重新定义克隆方法

    class Emplyee implments Cloneable{
        public Employee clone() trows CloneNotSupportedException{
            Employee e = (Employee) super.clone();//先直接克隆对象
            e.hireDay = (Date) hireDay.clone();   //将对象的引用数据类型的域进行一次克隆
            return e;  
        }       
    }    
  • 相关阅读:
    STL
    Makefile
    配置pyqt5环境 for python3.4 on Linux Mint 17.1
    SELinux Policy Macros
    python爬虫
    python常用模块
    python中if __name__ == '__main__':
    Centos 7 .Net core后台守护进程Supervisor配置
    阅读Google Protocol Buffers 指南,整理pb语法
    Google Protocol Buffers 入门
  • 原文地址:https://www.cnblogs.com/wuchaodzxx/p/5962979.html
Copyright © 2011-2022 走看看