国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

JAVA中淺復(fù)制與深復(fù)制

2019-11-18 15:35:19
字體:
供稿:網(wǎng)友
1.淺復(fù)制與深復(fù)制概念
⑴淺復(fù)制(淺克隆)
被復(fù)制對象的所有變量都含有與原來的對象相同的值,而所有的對其他對象的引用仍然指向原來的對象。換言之,淺復(fù)制僅僅復(fù)制所考慮的對象,而不復(fù)制它所引用的對象。
 
⑵深復(fù)制(深克隆)
被復(fù)制對象的所有變量都含有與原來的對象相同的值,除去那些引用其他對象的變量。那些引用其他對象的變量將指向被復(fù)制過的新對象,而不再是原有的那些被引用的對象。換言之,深復(fù)制把要復(fù)制的對象所引用的對象都復(fù)制了一遍。
 
2.java的clone()方法
⑴clone方法將對象復(fù)制了一份并返回給調(diào)用者。一般而言,clone()方法滿足:
①對任何的對象x,都有x.clone() !=x//克隆對象與原對象不是同一個對象
②對任何的對象x,都有x.clone().getClass()= =x.getClass()//克隆對象與原對象的類型一樣
③假如對象x的equals()方法定義恰當(dāng),那么x.clone().equals(x)應(yīng)該成立。
 
⑵Java中對象的克隆
①為了獲取對象的一份拷貝,我們可以利用Object類的clone()方法。
②在派生類中覆蓋基類的clone()方法,并聲明為public。
③在派生類的clone()方法中,調(diào)用super.clone()。
④在派生類中實(shí)現(xiàn)Cloneable接口。
 
請看如下代碼:
 
class Student implements Cloneable
{
    String name;
    int age;
    Student(String name,int age)
    {
        this.name=name;
        this.age=age;
    }
    public Object clone()
    {
        Object o=null;
        try
        {
        o=(Student)super.clone();//Object中的clone()識別出你要復(fù)制的是哪一
// 個對象。
        }
        catch(CloneNotSupportedException e)
        {
            System.out.PRintln(e.toString());
        }
        return o;
    }
}
 
public static void main(String[] args)
    {
      Student s1=new Student("zhangsan",18);
      Student s2=(Student)s1.clone();


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 乐东| 揭阳市| 石屏县| 德格县| 桑植县| 宣恩县| 太仆寺旗| 陆川县| 孝义市| 甘南县| 中方县| 新化县| 伽师县| 武定县| 信宜市| 长阳| 安西县| 祥云县| 全椒县| 北票市| 顺平县| 九龙县| 读书| 新巴尔虎右旗| 桦川县| 札达县| 阳高县| 繁昌县| 安陆市| 江门市| 浦城县| 登封市| 即墨市| 托克托县| 临邑县| 平罗县| 汪清县| 富阳市| 铜梁县| 璧山县| 永靖县|