W
Wachtertroll
Gast
Hallo,
ich habe eine Frage zum beliebten Thema Referenzen in Java.
Mir ist klar, dass ich ein Objekt als Parameter an eine Funktion übergeben kann und dann innerhalb der Funktion das ursprüngliche Objekt änderne/lese und nicht eine lokale Kopie.
Jetzt will ich aber innerhalb eines Objekts einer Klasse eine Referenz auf ein Objekt außerhalb der Klasse speichern, weil ich dessen Eigenschaften später nutzen möchte.
Ein Beispiel in Pseudocode (das nichts mit meinem aktuellen Projekt zu tun hat *g*):
Und jetzt soll das KindDings beim Aufruf von gehZuMama() die Position des zugeordneten MamaDings auslesen, obwohl sich die Position von MamaDings seit dem Instanzieren geändert haben könnte.
In C würde man dazu einfach die Speicheradresse von MamaDings in einem Zeiger ablegen. Gibt es ein ähnliches Konstrukt in Java, oder muss ich das durch ganz anderes Programmdesign lösen? Die Referenz funktioniert ja wie gesagt genau andersherum.
Bei Interesse: es geht eigentlich darum, bei einem 2D-Spiel z. B. an die Koordinaten einer Spielfigur einen Spezialeffekt zu "pinnen", wobei beide von der Basisklasse "Actor" erben.
ich habe eine Frage zum beliebten Thema Referenzen in Java.
Mir ist klar, dass ich ein Objekt als Parameter an eine Funktion übergeben kann und dann innerhalb der Funktion das ursprüngliche Objekt änderne/lese und nicht eine lokale Kopie.
Jetzt will ich aber innerhalb eines Objekts einer Klasse eine Referenz auf ein Objekt außerhalb der Klasse speichern, weil ich dessen Eigenschaften später nutzen möchte.
Ein Beispiel in Pseudocode (das nichts mit meinem aktuellen Projekt zu tun hat *g*):
Code:
abstract class Dings { Position pos; }
class MutterDings extends Dings { ... }
class KindDings extends Dings { MutterDings mama; void gehZuMama(); }
ArrayList<Dings> alleDingse...
Und jetzt soll das KindDings beim Aufruf von gehZuMama() die Position des zugeordneten MamaDings auslesen, obwohl sich die Position von MamaDings seit dem Instanzieren geändert haben könnte.
In C würde man dazu einfach die Speicheradresse von MamaDings in einem Zeiger ablegen. Gibt es ein ähnliches Konstrukt in Java, oder muss ich das durch ganz anderes Programmdesign lösen? Die Referenz funktioniert ja wie gesagt genau andersherum.
Bei Interesse: es geht eigentlich darum, bei einem 2D-Spiel z. B. an die Koordinaten einer Spielfigur einen Spezialeffekt zu "pinnen", wobei beide von der Basisklasse "Actor" erben.