Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Übergabe Durch Wert in Java | Abschnitt
Essenzielle Java-Konzepte

bookÜbergabe Durch Wert in Java

Swipe um das Menü anzuzeigen

Verständnis von Pass by Value in Java

In Java werden alle Methodenargumente per Wert übergeben. Das bedeutet, wenn eine Variable an eine Methode übergeben wird, kopiert Java den Wert dieser Variable und übergibt die Kopie an die Methode. Die Methode arbeitet dann mit dieser Kopie, nicht mit der ursprünglichen Variable aus dem Code.

  • Bei Übergabe eines primitiven Typs (wie int, double oder boolean) erhält die Methode eine Kopie des tatsächlichen Werts. Änderungen am Parameter innerhalb der Methode wirken sich nicht auf die ursprüngliche Variable außerhalb der Methode aus;
  • Bei Übergabe einer Objektreferenz (wie einem Array oder einer benutzerdefinierten Klasse) übergibt Java dennoch den Wert der Referenz (die Speicheradresse). Die Methode erhält eine Kopie dieser Referenz, sodass sowohl die ursprüngliche Referenz als auch der Methodenparameter auf dasselbe Objekt zeigen. Der interne Zustand des Objekts kann innerhalb der Methode verändert werden, aber wenn dem Parameter ein neues Objekt zugewiesen wird, bleibt die ursprüngliche Referenz außerhalb der Methode unverändert.

Dieses Verhalten ist wichtig, um vorherzusagen, wie sich Variablen nach dem Aufruf von Methoden in Java verändern – oder gleich bleiben.

Main.java

Main.java

copy
123456789101112131415
package com.example; public class Main { public static void main(String[] args) { int number = 10; System.out.println("Before method call: number = " + number); changeValue(number); System.out.println("After method call: number = " + number); } public static void changeValue(int num) { num = 20; System.out.println("Inside method: num = " + num); } }

In diesem Code erhält die Methode changeValue eine Kopie der Variablen number, da Java Pass by Value verwendet.
Eine Änderung von num innerhalb der Methode beeinflusst number in main nicht, sodass dessen Wert nach dem Methodenaufruf weiterhin 10 beträgt.

question mark

Was wird beim Ausführen dieses Codes ausgegeben?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 1. Kapitel 10

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

Abschnitt 1. Kapitel 10
some-alt