Guten Tag,
ich habe ein kleines Problem mit dem Verständnis mit Speicherzuständen in Java.
Und zwar zeichne ich als Übung ein Diagramm mit verschiedenen Pointern.
Die Aufgabe ist diese:
Code:
public class HSeiteneffekte {
public static void main(String[] args) {
Wrapper w1 = new Wrapper();
Wrapper w2 = w1;
w1.setI(1);
w2.setI(2);
int x = 3;
int[] a = { 1, 2 };
f(w1, x, new int[] { 4, 5 });
f(w2, x, a);
// Speicherzustand hier zeichnen
}
public static void f(Wrapper w, int x, int[] a) {
// Speicherzustand hier zeichnen
x = a [0];
a [0] = w.getI();
w.setI(x);
}
}
public class Wrapper {
private int i;
public void setI(int x) {
i = x;
}
public int getI() {
return i;
}
}
Es wird nun die Methode
main ausgeführt. Stellen Sie den Speicher (d.h. alle (implizit) im Programm vorkommenden Arrays (außer
args) und Objekte) bei jedem Aufruf der Methode
f und vor Ende des Programms graphisch dar.
Es müssen also insgesamt drei Speicherzustände dargestellt werden.
Unten habe ich mein Ansatz bzw meine Lösung gepostet.
Wäre das denn richtig oder sollte ich bei 1) Speicherzustand nur ein Array (int[]) und nur ein Objekt (Wrapper) haben?
Falls ich irgendwo einen Fehler gemacht habe, könntet ihr mich aufklären? Das wäre sehr lieb, weil ich das Thema wirklich verstehen möchte.
Danke im Voraus.