Skip to Content

1.45 Parameterübergaben und Rückgaben von Werten

Bei der Methode malDrei(int b) geht das Ergebnis nach dem Verlassen des Methodenrumpf verloren.
Warum geht dieses Ergebnis verloren, aber das Ergebnis der Methode dreifach(int[] a) kann noch vom Aufrufer nach Beenden der Methode verwendet werden?

Geben Sie eine kurze Erklärung der beiden unterschiedlichen Situationen.

public class Feld1 {
   public static void dreifach(int[] a) {
      if (a != null) {
for (int i = 0; i<a.length; i++) {
a[i] = 3 * a[i];
}
} } // Ende der Methode. Kein Rückgabewert notwendig public static void malDrei(int b) {int c=3*b;} } // Ende der Klasse Feld1
Niveau 1
Schwierigkeitsgrad mittel
Zeit 4 Minuten

Die Antwort ist bei der nächsten Frage zu finden (URL rechts unten)

Antwort zu Frage 1.44: Felder, Schleifen, Referenzen

public class Feld1 {
   public static void dreifach(int[] a) {
      if (a != null) {
for (int i = 0; i<a.length; i++) {
a[i] = 3 * a[i];
}
}
} // Ende der Methode. Kein Rückgabewert notwendig } // Ende der Klasse Feld1

 

Antwort zu Frage 1.45: Parameterübergaben und Rückgaben von Werten

Bei der Methode dreifach() wird eine Referenz auf ein Feld int[], welches auf dem Heap liegt, übergeben. Das Feld ist solange benutzbar, solange es Referenzen darauf gibt.
Die Methode malDrei() hat einen Basistypen int als Übergabeparameter. Er wird beim Aufruf kopiert und ist nur innerhalb des Methodenblocks gültig. Die Variable b wird am Ende des Methodenblocks gelöscht und ist nicht mehr benutzbar. 

 



blog | by Dr. Radut