Java中的引數傳遞
阿新 • • 發佈:2020-07-22
實參與形參
- 形式引數:是在定義函式名和函式體的時候使用的引數,目的是用來接收呼叫該函式時傳入的引數。
- 實際引數:在呼叫有參函式時,主調函式和被調函式之間有資料傳遞關係。在主調函式中呼叫一個函式時,函式名後面括號中的引數稱為“實際引數”。
- 實際引數是呼叫有參方法的時候真正傳遞的內容,而形式引數是用於接收實參內容的引數。
值傳遞和引用傳遞
- 值傳遞(pass by value):是指在呼叫函式時將實際引數
複製
一份傳遞到函式中,這樣在函式中如果對引數
進行修改,將不會影響到實際引數。 - 引用傳遞(pass by reference):是指在呼叫函式時將實際引數的地址
直接
傳遞到函式中,那麼在函式中對引數
傳共享物件呼叫(共享物件傳遞)
傳共享物件呼叫中,先獲取到實際引數的地址,然後將其複製,並把該地址的拷貝傳遞給被調函式的形式引數。因為引數的地址都指向同一個物件,所以我們也稱之為"傳共享物件",所以,如果在被調函式中改變了形式引數的值,呼叫者是可以看到這種變化的。
Java中引數傳遞
- 基本資料型別使用值傳遞
- 物件傳遞,把物件的引用當做值傳遞給方法,即共享物件傳遞
- Java物件的傳遞,是通過複製的方式把引用關係傳遞了,如果我們沒有改引用關係,而是找到引用的地址,把裡面的內容改了,是會對呼叫方有影響的,因為大家指向的是同一個共享物件。
- Java的物件傳遞,如果是修改引用,是不會對原來的物件有任何影響的,但是如果直接修改共享物件的屬性的值,是會對原來的物件有影響的。