• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            woaidongmao

            文章均收錄自他人博客,但不喜標題前加-[轉貼],因其丑陋,見諒!~
            隨筆 - 1469, 文章 - 0, 評論 - 661, 引用 - 0
            數據加載中……

            Java對象的淺拷貝和深拷貝

            首先介紹變量拷貝,變量拷貝時,原始變量和拷貝的新變量引用同一個對象。
            例如:

            Java代碼 clip_image001

            1. Employee e1 = new Employee();  
            2. Employee e2 = e1;  //----引用,沒有復制

            Employee e1 = new Employee();

            Employee e2 = e1;



            如果要創建一個對象的新拷貝,其狀態和原對象一樣,但是以后各自狀態各自維護,就要使用到clone方法了,當然你也可以通過其他方法實現。

            clone
            Object類的一個protected方法,也就意味的你不能亂拷貝的,其次如果對象中的所有屬性都屬于數值或者基本類型,這樣拷貝沒有問題的,但是,如果對象中包含子對象的引用,那么拷貝的結果就是兩個對象引用同一個子對象。

            1
            、淺拷貝
            默認的拷貝都是淺拷貝,你可以通過下面的方法實現:

            Java代碼 clip_image001

            1. class Employee implements Cloneable  
            2. {  
            3.    public Employee clone() throws CloneNotSupportedException  
            4.     {  
            5.      return super.clone();  
            6.     }  

            class Employee implements Cloneable

            {

               public Employee clone() throws CloneNotSupportedException

                {

                 return super.clone();

                }

            }


            淺拷貝需要記住的是原對象的各屬性最好都是基本類型或者不可變的對象。

            2
            、深拷貝
            深拷貝是相對淺拷貝的,解決不能管理子對象的問題的。
            實現方法如下:

            Java代碼 clip_image001

            1. class Employee implements Cloneable  
            2. {  
            3.    public Object clone() throws CloneNotSupportedException  
            4.     {  
            5.      Employee cloned = (Employee)super.clone();  
            6.  
            7.      //深拷貝子對象  
            8.      cloned.dep = (Department)dep.clone();  
            9.      return cloned.  
            10.     }  

            class Employee implements Cloneable

            {

               public Object clone() throws CloneNotSupportedException

                {

                 Employee cloned = (Employee)super.clone();

             

                 //深拷貝子對象

                 cloned.dep = (Department)dep.clone();

                 return cloned.

                }

            }

             

            posted on 2009-07-24 12:45 肥仔 閱讀(347) 評論(0)  編輯 收藏 引用 所屬分類: Web-后臺

            一本久久a久久精品vr综合| 久久久久国产精品嫩草影院| 久久国产精品成人免费| 大香网伊人久久综合网2020| 99久久免费国产精品| 要久久爱在线免费观看| 久久久噜噜噜久久熟女AA片| 国产99久久精品一区二区| 久久久噜噜噜久久| 久久久久亚洲AV无码网站| 99久久婷婷国产综合精品草原| 亚洲а∨天堂久久精品9966| 精品久久久噜噜噜久久久 | 青青草国产97免久久费观看| 人妻无码精品久久亚瑟影视| 91久久精品91久久性色| 久久亚洲国产最新网站| 好久久免费视频高清| 青青久久精品国产免费看| 久久久精品人妻一区二区三区蜜桃| 久久影院午夜理论片无码 | 久久99精品国产自在现线小黄鸭| 伊人丁香狠狠色综合久久| 精品永久久福利一区二区| 久久久久久久综合狠狠综合| 久久久WWW成人| 亚洲午夜精品久久久久久人妖| 人妻丰满AV无码久久不卡| 伊人久久大香线蕉综合热线| 久久精品国产一区二区| 久久AⅤ人妻少妇嫩草影院| 久久精品国产91久久综合麻豆自制 | 国产综合久久久久久鬼色| 伊人久久大香线焦AV综合影院| 色天使久久综合网天天| 久久无码精品一区二区三区| 久久婷婷五月综合97色直播| 久久精品国产99久久香蕉| 国产毛片久久久久久国产毛片 | 亚洲精品无码久久不卡| 欧美粉嫩小泬久久久久久久 |