java物件函式引數傳遞

2021-09-02 08:02:23 字數 378 閱讀 7051

class passparm

public static void change(int x)

}

輸出x=5;主調函式沒有變化x=5;

class passparm

public static void change(passparam obj)

}

輸出x=3,兩個棧記憶體指向了乙個堆記憶體。change方法修改了堆記憶體x的值,而main方法裡面所指向堆記憶體的位址始終不變。

如果change方法變為:public static void change(passparam obj)則會輸出x=5(類似於1)

注:傳遞物件的方式和傳遞陣列的方式一樣。

java函式引數傳遞方式

1 對於基礎型別,傳遞值 函式內對引數的操作不影響到外部的引數值。2 對於非基礎型別,傳引用。一般情況下,函式中引數的操作會影響到外部的引數值。如函式對student物件修改name屬性後,外部的student物件的name就變了 對於基礎型別的包裝型別,本來也適用於本規則,但實際卻另外蹊蹺 pub...

Java 引數傳遞

1 程式如下 package com.demo.test public class test void set string string,char ch public static void main string args 程式執行結果如下 before set test string 2018...

java引數傳遞

所有的引數傳遞都是 傳值,從來沒有 傳引用 這個事實。所有的引數傳遞都會在 程式執行棧上新分配乙個值的複製品.樓主的第一段 public static void test pass passa 這個傳的 passa 的 位址值。這個 位址值 被複製了乙份。不信,你寫 public static vo...