Heim >类库下载 >java类库 >Zwei Möglichkeiten, Java-Methodenparameter zu übergeben

Zwei Möglichkeiten, Java-Methodenparameter zu übergeben

little bottle
little bottlenach vorne
2019-04-08 13:43:206314Durchsuche

Es gibt zwei Möglichkeiten, Methodenparameter in Java zu übergeben: Übergabe als Wert und Übergabe als Referenz.

1. Wert übergeben

Der Parametertyp ist int, long und andere grundlegende Datentypen (acht grundlegende Datentypen), der Prozess der Parameterübergabe unter Verwendung der Wertkopiermethode

Codeausschnitt 1:

public class Test {

    public static void main(String[] args) {
        int a = 5;
        fun(a);
        System.out.println(a);// 输出结果为5
    }

    private static void fun(int a) {
        a += 1;
    }
}

2. Übergabe als Referenz

Der Parametertyp ist ein Referenztyp, und der Parameterübertragungsprozess übernimmt die Kopierreferenzmethode


Codeausschnitt 2:

public class Test {

    public static void main(String[] args) {
        A a = new A(5);
        fun(a);
        System.out.println(a.a);// 输出结果为6
    }

    private static void fun(A a) {
        a.a += 1;
    }

    static class A {
        public int a;

        public A(int a) {
            this.a = a;
        }
    }
}

Fazit: Die Übergabe als Wert ändert den Originalwert nicht, die Übergabe als Referenz ändert den Wert des referenzierten Objekts

Sehen Sie sich den folgenden Fall an:

Codeausschnitt 3:

public class Test {

    public static void main(String[] args) {
        Integer a = 5;
        fun(a);
        System.out.println(a);// 输出结果为5
    }

    private static void fun(Integer a) {
        a += 1;
    }

}

Dies ist offensichtlich eine Referenzübertragung. Warum wird der Wert des Objekts nicht geändert?

Hier verwenden wir tatsächlich die Auto-Boxing-Funktion der Basisdatentyp-Kapselungsklasse.

Integer a = 5. Nach der Kompilierung ist es tatsächlich Integer a = Integer.valueOf(5). Wenn man sich den Quellcode von Integer ansieht, ändert es nicht den Wert des ursprünglichen Objekts, sondern zeigt nur darauf Verweis auf ein anderes Objekt.


Der Prozess im Codeausschnitt 3 kann durch die folgende Abbildung dargestellt werden:

ändert direkt den Stapelrahmen Die Adresse verweist auf ein anderes Objekt, sodass der ursprüngliche Wert nicht geändert wird.

[Empfohlener Kurs: Java Video Tutorial]

Das obige ist der detaillierte Inhalt vonZwei Möglichkeiten, Java-Methodenparameter zu übergeben. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen