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

Zwei Möglichkeiten, Java-Methodenparameter zu übergeben

little bottle
Freigeben: 2019-04-08 14:56:18
nach vorne
6310 Leute haben es durchsucht

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;
    }
}
Nach dem Login kopieren

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;
        }
    }
}
Nach dem Login kopieren

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;
    }

}
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:csdn.net
Erklärung dieser Website
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
Neueste Artikel des Autors
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage