Heim >Java >javaLernprogramm >Wie Argumente übergeben werden

Wie Argumente übergeben werden

PHPz
PHPzOriginal
2024-08-24 06:34:08882Durchsuche

Zwei Möglichkeiten, Argumente an Methoden zu übergeben:

Call by Value:

  • Kopiert den Wert des Arguments in den formalen Parameter des Unterprogramms.
  • Änderungen, die am Parameter innerhalb der Methode vorgenommen werden, haben keinen Einfluss auf das ursprüngliche Argument.

Call by Reference:

  • Übergibt einen Verweis auf das Argument, nicht auf den Wert.
  • Änderungen am Parameter wirken sich auf das ursprüngliche Argument im Aufruf aus.

Primitive Typpassage:

  • Wenn ein primitiver Typ (z. B. int oder double) übergeben wird, wird Call-by-Value verwendet.
  • Die Methode erhält eine Kopie des Arguments, sodass innerhalb der Methode vorgenommene Änderungen keinen Einfluss auf den ursprünglichen Wert haben.

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.

Como os argumentos são passados

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn