<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    BloveSaga

    在希臘帕爾納斯山南坡上,有一個馳名世界的戴爾波伊神托所,在它的入口處的巨石上赫然銹刻著這樣幾個大字: 認識你自己!

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      34 隨筆 :: 12 文章 :: 122 評論 :: 0 Trackbacks

    ^^^^^^^^^^^^^^^對象的克隆^^^^^^^^^^^^^
    1> 為了獲取對象的一份拷貝,我們可以利用Object類的clone()方法。
    2> 在派生類中覆蓋基類的clone(),并聲明為public。
    3> 在派生類的clone()方法中,調用super.clone()。
    4> 在派生類中實現Cloneable接口。
    4> 沒有抽象方法的接口叫標識接口。
    5> 為什么我們在派生類中覆蓋Object的clone()方法時,一定要調用super.clone()呢?在運行時刻,Object
    ?? 的clone()方法能識別出你要復制的是哪一個對象,然后為此對象分配空間,并進行對象的復制,將原
    ?? 始對象的內容一一復制到新的對象空間去。

    * 淺克隆是針對沒有引用類型的變量來克隆。針對引用類型的克隆應該用Deeply Clone。
    淺克隆:
    Code:
    class FleetClone
    {
    ?public static void main(String[] args)
    ?{
    ?? Professor p=new Professor("feiyang",23);
    ?? Student s1=new Student("zhangshan",18,p);
    ?? Student s2=(Student)s1.clone();
    ?? s2.p.name="feifei";
    ?? s2.p.age=30;

    ?? System.out.println("name="+s1.p.name+","+"age="+s1.p.age);
    ?}
    }
    class Professor
    {
    ?String name;
    ?int age;
    ?Professor(String name,int age)
    ?{
    ??this.name=name;
    ??this.age=age;
    ?}
    }

    class Student implements Cloneable
    {
    ?Professor p;
    ?String name;
    ?int age;
    ?Student(String name, int age,Professor p)
    ?{
    ??this.name=name;
    ??this.age=age;
    ??this.p=p;
    ?}
    ?public Object clone()
    ?{
    ??Object o=null;
    ??try
    ??{
    ???o=super.clone();
    ??}
    ??catch(CloneNotSupportedException e)
    ??{
    ???e.printStackTrace();
    ??}
    ??return o;
    ?}
    }
    改變學生s2的教授信息,打印s1教授信息,結果為:name=feifei,age=30.產生這個結果是因為String是一個常量類型.
    ?
    深克隆
    code:
    class DeeplyClone
    {
    ?public static void main(String[] args)
    ?{
    ?? Professor p=new Professor("feiyang",23);
    ?? Student s1=new Student("zhangshan",18,p);
    ?? Student s2=(Student)s1.clone();
    ?? s2.p.name="Bill.Gates";
    ?? s2.p.age=30;
    ?? System.out.println("name="+s1.p.name+","+"age="+s1.p.age);
    ?}
    }
    class Professor implements Cloneable
    {
    ?String name;
    ?int age;
    ?Professor(String name,int age)
    ?{
    ??this.name=name;
    ??this.age=age;
    ?}
    ?public Object clone()
    ?{
    ??Object o=null;
    ??try
    ??{
    ???o=super.clone();
    ??}
    ??catch(CloneNotSupportedException e)
    ??{
    ???e.printStackTrace();
    ??}
    ??return o;
    ?}
    }

    class Student implements Cloneable
    {
    ?Professor p;
    ?String name;
    ?int age;
    ?Student(String name, int age,Professor p)
    ?{
    ??this.name=name;
    ??this.age=age;
    ??this.p=p;
    ?}
    ?public Object clone()
    ?{
    ??//Object o=null;
    ??Student o=null;
    ??try
    ??{
    ???o=(Student)super.clone();
    ??}
    ??catch(CloneNotSupportedException e)
    ??{
    ???e.printStackTrace();
    ??}
    ??o.p=(Professor)p.clone();
    ??return o;
    ?}
    }
    打印結果為:name=Bill.Gates,age=30,這就是深克隆.
    posted on 2006-06-05 04:15 藍色Saga 閱讀(153) 評論(0)  編輯  收藏 所屬分類: Basic Study for JAVA
    主站蜘蛛池模板: 色婷五月综激情亚洲综合| 久久久久久久久亚洲| 亚洲中文无码mv| 成年人免费的视频| 亚洲综合一区二区| 69xx免费观看视频| 亚洲成人网在线观看| 91久久成人免费| 亚洲中文无码线在线观看| 色猫咪免费人成网站在线观看| 在线播放免费播放av片| 亚洲六月丁香六月婷婷蜜芽 | 色吊丝免费观看网站| 男人的好看免费观看在线视频| 五月天网站亚洲小说| 两性色午夜免费视频| 国产精品亚洲视频| 边摸边吃奶边做爽免费视频99| 在线观看免费污视频| 亚洲六月丁香六月婷婷蜜芽| 国产大片免费网站不卡美女| 精品亚洲aⅴ在线观看| 午夜视频免费在线观看| 亚洲综合精品一二三区在线| 久久青草免费91观看| 亚洲中文无韩国r级电影 | 在线a亚洲v天堂网2019无码| 高清免费久久午夜精品| 亚洲国产a级视频| 中文字幕成人免费高清在线| 亚洲啪啪综合AV一区| 特级做A爰片毛片免费看无码| 亚洲一区二区三区无码中文字幕| aa级女人大片喷水视频免费| 亚洲VA中文字幕无码毛片 | 91老湿机福利免费体验| 亚洲国产精品成人综合久久久| 最近最新MV在线观看免费高清| 亚洲午夜无码毛片av久久京东热| 国产三级免费电影| 黄色视屏在线免费播放|