Zwei Möglichkeiten, Argumente an Methoden zu übergeben:
Call by Value:
Call by Reference:
Primitive Typpassage:
Beispiel:
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); } }
Objektpassage:
Wenn ein Objekt an eine Methode übergeben wird, verwendet Java Call-by-Reference.
Die Methode erhält einen Verweis auf das Objekt, was bedeutet, dass innerhalb der Methode vorgenommene Änderungen Auswirkungen auf das ursprüngliche Objekt haben.
Beispiel:
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); } }
Änderungen innerhalb der Methode change() wirken sich auf das als Argument übergebene ob-Objekt aus.
Unterschied zwischen primitiven Typen und Objekten:
Primitive Typen: Als Wert übergeben, Änderungen an der Methode wirken sich nicht auf die ursprünglichen Werte aus.
Objekte: Als Referenz übergeben, wirken sich Änderungen an der Methode auf das ursprüngliche Objekt aus.
Abschließende Zusammenfassung:
Die Übergabe von Argumenten in Java kann als Wert oder als Referenz erfolgen. Primitive Typen werden als Wert übergeben, während Objekte als Referenz übergeben werden, was zu unterschiedlichen Auswirkungen auf die ursprünglichen Argumente führt.
Das obige ist der detaillierte Inhalt vonWie Argumente übergeben werden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!