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

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

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

    BloveSaga

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

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      34 隨筆 :: 12 文章 :: 122 評(píng)論 :: 0 Trackbacks

    ^^^^^^^^^^^^^^^對(duì)象的克隆^^^^^^^^^^^^^
    1> 為了獲取對(duì)象的一份拷貝,我們可以利用Object類的clone()方法。
    2> 在派生類中覆蓋基類的clone(),并聲明為public。
    3> 在派生類的clone()方法中,調(diào)用super.clone()。
    4> 在派生類中實(shí)現(xiàn)Cloneable接口。
    4> 沒有抽象方法的接口叫標(biāo)識(shí)接口。
    5> 為什么我們?cè)谂缮愔懈采wObject的clone()方法時(shí),一定要調(diào)用super.clone()呢?在運(yùn)行時(shí)刻,Object
    ?? 的clone()方法能識(shí)別出你要復(fù)制的是哪一個(gè)對(duì)象,然后為此對(duì)象分配空間,并進(jìn)行對(duì)象的復(fù)制,將原
    ?? 始對(duì)象的內(nèi)容一一復(fù)制到新的對(duì)象空間去。

    * 淺克隆是針對(duì)沒有引用類型的變量來克隆。針對(duì)引用類型的克隆應(yīng)該用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;
    ?}
    }
    改變學(xué)生s2的教授信息,打印s1教授信息,結(jié)果為:name=feifei,age=30.產(chǎn)生這個(gè)結(jié)果是因?yàn)镾tring是一個(gè)常量類型.
    ?
    深克隆
    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;
    ?}
    }
    打印結(jié)果為:name=Bill.Gates,age=30,這就是深克隆.
    posted on 2006-06-05 04:15 藍(lán)色Saga 閱讀(153) 評(píng)論(0)  編輯  收藏 所屬分類: Basic Study for JAVA
    主站蜘蛛池模板: 日本黄色免费观看| 亚洲欧美黑人猛交群| 国产又大又黑又粗免费视频| 久久精品国产大片免费观看| 日韩亚洲翔田千里在线| 亚洲区精品久久一区二区三区| 亚洲无线码在线一区观看| 手机看片久久国产免费| 999久久久免费精品国产| 日韩精品无码免费专区午夜| 曰批免费视频播放在线看片二| 亚洲综合色7777情网站777| 亚洲av女电影网| 亚洲中文字幕无码爆乳av中文| 免费看少妇作爱视频| 国产va精品免费观看| 性无码免费一区二区三区在线| 国产一二三四区乱码免费| 国产成人亚洲精品蜜芽影院| 亚洲国产品综合人成综合网站| 亚洲国产精品国自产电影| 亚洲精品国产精品乱码在线观看| 亚洲XX00视频| 国产一区二区三区在线观看免费| 大陆一级毛片免费视频观看i| 成年人网站免费视频| 国产成人精品免费视频大| 99视频在线免费看| 久久精品免费观看国产| 四虎成人精品永久免费AV| 精品国产免费一区二区三区香蕉| CAOPORN国产精品免费视频| 黄床大片免费30分钟国产精品| 一级中文字幕免费乱码专区 | a级大片免费观看| www.av在线免费观看| 丰满少妇作爱视频免费观看| 色婷婷综合缴情综免费观看 | 成人激情免费视频| 无人在线观看免费高清视频| 全免费毛片在线播放|