Java傳值與傳引用總結

1、簡單類型

按值傳遞,也就是說,傳參時是拷貝一份實參,創建一個新的臨時對象供函數內部使用,函數內對此對象的任何操作,都不會對實參有副作用。

2、類類型

按引用傳遞,也就是說,傳參時實際上傳遞的是實參的一個引用(C++中引用傳參的概念,和C++中的“引用”概念有區別,C++中的引用只有在初始化時才能綁定對象,並且一經綁定不可改變),可以理解爲拷貝了一份原對象的地址,也就是C++中的指針。

        Java中沒有指針的概念,Java中的類類型實際上將C++的“指針”類型與類類型合爲一體。所謂合爲一體表現在,“指針”的標識符、操作符等,都和對象類的標識符相同,具體來說就是,通過.而非->調用成員,值的訪問也不需要解引用符號*(同時不提供訪問和操作“指針“地址的方式)。另一方面,類類型的=號也僅僅是基於“指針”地址複製的淺拷貝。

        在函數中,可以通過調用類的成員函數改變該對象的數據成員,函數內修改此對象的操作將反映在調用它的實參上,但要注意,=號的行爲是基於C++中指針複製的實現,因而=不會影響調用它的實參。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章