First page Back Continue Last page Overview Graphics
Identität
Zustandsgleichheit („gleich“)
gleiche Zustände = Variableninhalte
referenzielle Gleichheit („selb“)
gleiche Speicherposition
Klonen: (auch Kopieren)
ein zustandsgleiches Objekt erzeugen
Notes:
Beim Übergang zwischen Klassendiagrammen (zeigen „nur“ die Klassen, aus denen Objekte dann abgeleitet werden) und Objektdiagrammen aber auch beim Kodieren ist es essenziell, sich den Unterschied zwischen zustandsgleichen und referenziell gleichen Objekten bewusst zu machen.
Objekte werden aus Klassen instanziert und belegen mit ihren Variablen bestimmte Bereiche im Speicher. Werden von einer Klasse zwei (oder mehrere) Objekte instanziert und alle Variablen dabei auf dieselben Werte gesetzt, so bleiben es immer noch mehrere Objekte. Selbst wenn sich die Objekte nicht mehr unterscheiden lassen, haben wir es immer noch mit mehreren Objekten zu tun, die wir „zustandsgleich“ nennen.
Wird absichtlich ein neues Objekt erzeugt, das in allen Attributen ein Abbild eines anderes ist, mit einem Wort zustandsgleich, so nennen wir diesen Vorgang klonen.
Gleichzeitig ist es aber in jeder objektorientierten Programmiersprache möglich, mit Zeigern auf Objekte zu verweisen. Tatsächlich ist es so, dass jede Objektvariable in Wahrheit nichts anderes enthält als einen Zeiger auf einen Speicherbereich, wo die Objektvariablen zu finden sind. Das ist übrigens auch bei Programmiersprachen so, die bekanntermaßen „keine Zeiger kennen“, wie etwa Java! Java kennt lediglich keine expliziten Zeiger, also die Möglichkeit mit Zeigern expressis verbis zu hantieren. Selbstverständlich wird aber das gesamte Objekthandling vermittels Zeigern erledigt.
Dadurch wird es auf einfache Weise möglich, dass zwei verschiedene Objektvariablen auf denselben Speicherbereich (=Adresse) verweisen. Somit kann ein und dasselbe Objekt durch mehrere Variablen dargestellt werden, die tatsächlich identisch sind.