值傳遞
比如我們的基本資料型別
int char double long byte boolean long short
引用傳遞
除此以為的都是引用傳遞,尤其是我們在建構函式的引數時候
clone
1.拷貝物件返回的是乙個新的物件,而不是乙個對原來物件的引用
2.拷貝物件與用new操作符返回的物件不同的是這個拷貝已經包含了原有物件的一些資訊,而不是乙個物件的初始值
比如這個常見的例子
class cloneclass implements cloneablecatch(clonenotsupportedexception e)
return o; } }
影子轉殖
其實說白了 就是非基本型別在clone的時候也要實現clonealbe介面,這種轉殖的效果就是感覺新物件沒有全部資訊的獲取
深度轉殖
class unclonea implements cloneable
public void doublevalue()
public string tostring()
public object clone()catch(clonenotsupportedexception e)
return o;
} }
class cloneb implements cloneablecatch(clonenotsupportedexception e)
o.unca = (unclonea)unca.clone();
return o; } }
java基礎學習 轉殖
被複製物件的所有變數都含有與原來的物件相同的值,而所有的對其他物件的引用仍然指向原來的物件。換言之,淺複製僅僅複製所考慮的物件,而不複製它所引用的物件。被複製物件的所有變數都含有與原來的物件相同的值,除去那些引用其他物件的變數。那些引用其他物件的變數將指向被複製過的新物件,而不再是原有的那些被引用的...
Java基礎篇 深轉殖與淺轉殖
轉殖,顧名思義,即是產生乙個與原物件 完全 一樣的乙個新物件。這裡的一樣,或許是表面的一樣,或許是真的一樣。這就牽扯到兩個新定義 淺轉殖與深轉殖。淺轉殖 新物件的基礎型別的變數值與原物件相同,而特殊物件,即非八大基本型別的物件與原物件指向同一記憶體空間,不管新老物件誰對這段空間進行操作都會影響到另乙...
JAVA 物件轉殖clone
有時候我們希望轉殖乙個已存在的物件,並對其進行操作,但是不希望改變原物件,這時使用clone技術就非常方便了。但是使用clone,也有一些需要注意的地方,因為clone有淺層轉殖和深層轉殖。還是習慣先直接上 結合 講解。注 如果你希望某個類具有clone功能,該類必須實現介面cloneable,它是...