將參數傳遞給方法的兩種方法:
依值呼叫:
參考呼叫:
原型通道:
範例:
class Test { void noChange(int i, int j) { i = i + j; j = -j; } } class CallByValue { public static void main(String[] args) { Test ob = new Test(); int a = 15, b = 20; System.out.println("a and b before call: " + a + " " + b); ob.noChange(a, b); System.out.println("a and b after call: " + a + " " + b); } }
物件通道:
當物件傳遞給方法時,Java 使用參考呼叫。
此方法接收對該物件的引用,這表示在該方法內所做的變更會影響原始物件。
範例:
class Test { int a, b; Test(int i, int j) { a = i; b = j; } void change(Test ob) { ob.a = ob.a + ob.b; ob.b = -ob.b; } } class PassObRef { public static void main(String[] args) { Test ob = new Test(15, 20); System.out.println("ob.a and ob.b before call: " + ob.a + " " + ob.b); ob.change(ob); System.out.println("ob.a and ob.b after call: " + ob.a + " " + ob.b); } }
change() 方法中的變更會影響作為參數傳遞的 ob 物件。
原始型別與物件之間的差異:
原始型別:以值傳遞,方法的變更不會影響原始值。
物件:透過引用傳遞,對方法的變更會影響原始物件。
最終總結:
在 Java 中傳遞參數可以透過值或透過引用。原始類型透過值傳遞,而物件透過引用傳遞,導致對原始參數的影響不同。
以上是參數如何傳遞的詳細內容。更多資訊請關注PHP中文網其他相關文章!