Hallo!
Das Skript mit "call-by-value" habe ich soweit verstanden.
Allerdings habe ich so meine Schwierigkeiten mit dem Skript für den "call-by-reference-Effekt bei Objekten."
Die Ausgabe ist 3.
Mir ist das wirklich ein Rätsel, warum die Ausgabe hier 3 ist. ???:L
Kann mir bitte jemand kurz den Ablauf dieses Programms erklären, denn dann sollte ich das wohl begriffen haben?
Vielen Dank für die Mühe!
Das Skript mit "call-by-value" habe ich soweit verstanden.
Allerdings habe ich so meine Schwierigkeiten mit dem Skript für den "call-by-reference-Effekt bei Objekten."
Wenn der Parameter kein primitiver Typ ist, sondern ein Objekt (also z.B. ein Array - was genau Objekte sind, betrachten wir später) dann wird zwar in der Methode ebenfalls mit einer Kopie des Parameters gearbeitet, aber es handelt sich um eine Kopie der Speicheradresse.
Java:public class Reference { public static void changeValues (int[] werte, int index, int wert) { werte[index] = wert; } public static void main (String[] args) { int[] werte = {0, 1, 2}; changeValues (werte, 1, 3); System.out.println (werte[1]); // Ausgabe? } }
Obwohl also auch hier die Parameterauswertung nach dem Prinzip call-by-value erfolgt, ist der Effekt der gleiche wie bei call-by-reference. Wir werden auf diesen Effekt zurückkommen.
Die Ausgabe ist 3.
Mir ist das wirklich ein Rätsel, warum die Ausgabe hier 3 ist. ???:L
Kann mir bitte jemand kurz den Ablauf dieses Programms erklären, denn dann sollte ich das wohl begriffen haben?
Vielen Dank für die Mühe!