Übergeben von Funktionen von Funktionen in Java
Zusammenfassen:
1. Beim Übergeben eines Objekts (eine Referenz auf ein Objekt) als Parameter wird die Referenz übergeben (entspricht einem Zeiger). Mit anderen Worten, die Änderungen an Parametern in der Funktion beeinflussen das ursprüngliche Objekt.
2. Beim Übergeben eines primitiven Typs oder eines Verpackungssatzes primitiver Typen als Parameter wird der Wert übergeben. Mit anderen Worten, die Änderungen an Parametern in der Funktion beeinflussen die ursprüngliche Variable nicht.
3. Wenn das Array (Array -Referenz) als Parameter übergeben wird, wird die Referenz übergeben (gleichwertig wie Zeiger). Mit anderen Worten, die Änderungen an Parametern in der Funktion beeinflussen das ursprüngliche Array.
4. Wenn der String -Typ (Referenz) als Parameter übergeben wird, handelt es sich um eine Referenz. Wenn jedoch eine Änderung an der Zeichenfolge vorgenommen wird, wird ein neues String -Objekt generiert und der Wert des ursprünglichen String -Objekts nicht geändert. (Sie können jedoch der ursprünglichen Referenz einen Verweis auf das neue Objekt zuweisen. Dies gibt den Menschen das oberflächliche Phänomen, das sich das ursprüngliche Objekt geändert hat, es hat sich jedoch nicht geändert, aber der ursprüngliche Hinweis darauf hat auf das neue Objekt hingewiesen.)
Paket StringTest; Klasse A {int a = 1; char b = 'a'; public a () {} public a (int _a, char _b) {this.a = _a; this.b = _b; } public String toString () {return "a ="+this.a+", b ="+this.b; }} öffentliche Klasse Referencetest {public static a Changea (eine Klasse) {class.a = 2; class.b = 'b'; Rückgabeklasse; } public static String Changestring (String str) {System.out.println (str.hashcode ()); str = str.tolowerCase (); System.out.println (str.hashcode ()); return str; } public static int changeInt (int a) {a = a+1; Rückkehr a; } public static Integer ChangeInteger (Integer a) {a = new Integer (9); Rückkehr a; } public static int [] ChangeIntArray (int a []) {a [0] = 10; Rückkehr a; } public static void printArray (int a []) {für (int i = 0; i <a.länge; i ++) {System.out.print (a [i]+""); } System.out.println (); } public static void main (String [] args) {// Das benutzerdefinierte Objekt übergibt eine Referenz a = new a (); A b = Changea (a); System.out.println (a); System.out.println (a); System.out.println (b); System.out.println ("-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Ein Parameter (der Wert des String -Objekts kann nicht geändert werden. Jeder modifizierte String -Objekt wird ein neues String -Objekt zum Speichern des geänderten Werts neu erstellt. 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); Auslaufergebnisse:
a = 2, b = b
a = 2, b = b
-------------------------
711139030
711139030
226046678
226046678
Huhualiang
Huhualianang
-------------------------
8
9
-------------------------
1
9
-------------------------
10 1 2 3
10 1 2 3
Danke fürs Lesen, ich hoffe, es kann Ihnen helfen. Vielen Dank für Ihre Unterstützung für diese Seite!