03.11.2013 Aufrufe

SMALLTALK K1ex127-.45ex51275ahler/Bothner

SMALLTALK K1ex127-.45ex51275ahler/Bothner

SMALLTALK K1ex127-.45ex51275ahler/Bothner

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

6.3 Logische Methoden 107<br />

die Pseudovariable “true” als Ergebnis-Objekt.<br />

Um für ein bestimmtes Objekt prüfen zu können, ob es in einem Sammler enthalten<br />

ist, läßt sich die Basis-Methode “includes:” einsetzen.<br />

ˆ “includes:”:<br />

Die Message “includes:” liefert die Pseudovariable “true” als Ergebnis-Objekt,<br />

sofern das Argument dieser Message in demjenigen Sammler enthalten ist, der<br />

als Empfänger-Objekt dieser Message aufgeführt wird.<br />

6.3.3 Prüfung auf Gleichheit und Identität<br />

Definition von “Gleichheit” und “Identität”<br />

Beim Vergleich zweier Objekte ist darauf zu achten, ob sie auf “Identität” oder auf<br />

“Gleichheit” geprüft werden sollen. Diese differenzierte Betrachtung gründet sich<br />

darauf, daß Objekte die Kapselung ihrer Attribute darstellen, deren zugehörige Attributwerte<br />

Speicherbereiche im Hauptspeicher belegen.<br />

In dieser Hinsicht ist der folgende Sachverhalt bedeutsam:<br />

ˆ Durch eine Zuweisung verweist eine Variable, die links vom Zuweisungssymbol<br />

aufgeführt ist, auf dasjenige Objekt, das rechts vom Zuweisungssymbol<br />

ermittelt wird.<br />

Wird daher einer Variablen eine Variable zugewiesen, so bezeichnen beide Variablennamen<br />

ein und dasselbe Objekt. Folglich stimmen die Speicherbereiche der Attributwerte<br />

überein, die über die beiden Variablennamen referenziert werden.<br />

Nach dieser Vorbetrachtung legen wir jetzt wie folgt fest, wann zwei Objekte als<br />

“identisch” bzw. als “gleich” angesehen werden:<br />

ˆ Zwei Objekte sind identisch, wenn ihre Bezeichner auf denselben Speicherplatz<br />

verweisen.<br />

ˆ Zwei Objekte sind gleich, wenn sie in ihren Attributen wertmäßig übereinstimmen.<br />

Hinweis: Zwei identische Objekte sind folglich auch gleich.<br />

Zur Prüfung der Identität sind die Messages “==” und “∼∼” einsetzbar.<br />

ˆ “==”, “∼∼”:<br />

Die zu diesen Messages gehörigen Methoden sind in der Klasse “Object” vereinbart.<br />

Als Ergebnis-Objekt der Message “==” (“∼∼”) wird die Pseudovariable<br />

“true” (“false”) ermittelt, sofern sowohl das Empfänger-Objekt als auch<br />

das als Argument angegebene Objekt (nicht) denselben Speicherplatz belegen.<br />

Andernfalls ergibt sich die Pseudovariable “false” (“true”).<br />

Hinweis: Innerhalb der Klasse “Object” ist – zum Vergleich zweier Objekte – darüberhinaus<br />

die Methode “=” vereinbart. Diese Methode ist genauso festgelegt, wie die durch

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!