Parameter fungsi yang lewat di java
Meringkaskan:
1. Saat menyampaikan objek (referensi ke objek) sebagai parameter, referensi dilewatkan (setara dengan pointer). Dengan kata lain, modifikasi yang dibuat untuk parameter dalam fungsi akan mempengaruhi objek asli.
2. Saat melewati tipe primitif atau set pembungkus tipe primitif sebagai parameter, nilainya dilewati. Dengan kata lain, modifikasi yang dibuat untuk parameter dalam fungsi tidak akan mempengaruhi variabel asli.
3. Saat melewati array (referensi array)) sebagai parameter, referensi dilewatkan (setara dengan penunjuk). Dengan kata lain, modifikasi yang dibuat untuk parameter dalam fungsi akan mempengaruhi array asli.
4. Ketika tipe string (referensi) dilewatkan sebagai parameter, itu adalah referensi. Namun, ketika modifikasi pada string dibuat, objek string baru akan dihasilkan, dan nilai objek string asli tidak akan dimodifikasi. (Namun, Anda dapat menetapkan referensi ke objek baru ke referensi asli. Ini memberi orang fenomena superfisial bahwa objek asli telah berubah, tetapi tidak berubah, tetapi referensi asli untuk itu telah menunjuk ke objek baru).
Paket StringTest; kelas A {int a = 1; char b = 'a'; publik a () {} public a (int _a, char _b) {this.a = _a; this.b = _b; } public string toString () {return "a ="+this.a+", b ="+this.b; }} class public Referencetest {public static a changea (class) {class.a = 2; class.b = 'b'; kelas kembali; } public static String ubahe (string str) {System.out.println (str.HashCode ()); str = str.tolowercase (); System.out.println (str.HashCode ()); mengembalikan str; } public static int changeint (int a) {a = a+1; mengembalikan a; } public static integer changeinteger (integer a) {a = new integer (9); mengembalikan a; } public static int [] ChangeIntArray (int a []) {a [0] = 10; mengembalikan a; } public static void printArray (int a []) {for (int i = 0; i <a.length; i ++) {System.out.print (a [i]+""); } System.out.println (); } public static void main (string [] args) {// Objek kustom melewati referensi a = baru a (); A b = changea (a); System.out.println (a); System.out.println (a); System.out.println (b); System.out.println ("------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Parameter (tetapi nilai dari objek string tidak dapat diubah. Setiap nilai objek string yang dimodifikasi akan menciptakan kembali objek string baru untuk menyimpan nilai yang dimodifikasi, dan nilai asli tidak akan berubah) string str1 = "huhualiang"; System.out.println (str1); System.out.println ("----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- System.out.println (inta); System.out.println (INTB); System.out.println (INTB); System.out.println ("--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- [] ArrayB = ChangeIntArray (Arraya); Hasil Menjalankan:
a = 2, b = b
a = 2, b = b
-------------------------
711139030
711139030
226046678
226046678
Huhualiang
Huhuualianang
-------------------------
8
9
-------------------------
1
9
-------------------------
10 1 2 3
10 1 2 3
Terima kasih telah membaca, saya harap ini dapat membantu Anda. Terima kasih atas dukungan Anda untuk situs ini!