首頁 >Java >java教程 >參數如何傳遞

參數如何傳遞

PHPz
PHPz原創
2024-08-24 06:34:08886瀏覽

將參數傳遞給方法的兩種方法:

依值呼叫:

  • 複製子程式形參中參數的值。
  • 對方法內參數所做的變更不會影響原始參數。

參考呼叫:

  • 傳遞對參數的引用,而不是值。
  • 對參數所做的變更會影響呼叫中的原始參數。

原型通道:

  • 當傳遞原始型別(如 int 或 double)時,使用按值呼叫。
  • 此方法接收參數的副本,因此方法內所做的變更不會影響原始值。

範例:

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 中傳遞參數可以透過值或透過引用。原始類型透過值傳遞,而物件透過引用傳遞,導致對原始參數的影響不同。

Como os argumentos são passados

以上是參數如何傳遞的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn