Dua Cara untuk Menyalurkan Hujah kepada Kaedah:
Panggil dengan Nilai:
Panggil dengan Rujukan:
Petikan Jenis Primitif:
Contoh:
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); } }
Petikan Objek:
Apabila objek dihantar ke kaedah, Java menggunakan panggilan melalui rujukan.
Kaedah menerima rujukan kepada objek, yang bermaksud bahawa perubahan yang dibuat dalam kaedah mempengaruhi objek asal.
Contoh:
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); } }
Perubahan dalam kaedah change() menjejaskan objek ob yang diluluskan sebagai hujah.
Perbezaan Antara Jenis Primitif dan Objek:
Jenis Primitif: Melepasi nilai, perubahan pada kaedah tidak menjejaskan nilai asal.
Objek: Dilalui dengan rujukan, perubahan pada kaedah mempengaruhi objek asal.
Ringkasan Akhir:
Meluluskan hujah dalam Java boleh dengan nilai atau rujukan. Jenis primitif diluluskan mengikut nilai, manakala objek diluluskan melalui rujukan, menghasilkan kesan berbeza pada hujah asal.
Atas ialah kandungan terperinci Bagaimana hujah diluluskan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!