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.

140 7 Hierarchische Gliederung von Lösungsplänen<br />

ˆ PROB-5:<br />

Auf der Basis der erfaßten Werte soll – mittels einer geeigneten Instanziierung<br />

– einheitlich über den Message-Selektor “zentrum” der jeweils charakteristische<br />

statistische Kennwert angefordert werden können. Ergänzend sollen der<br />

Modus, der Median und der Durchschnittswert immer dann, wenn die jeweilige<br />

statistische Kennzahl sinnvoll ist, auch gezielt abrufbar sein.<br />

Um eine Lösung zu entwickeln, nutzen wir die Möglichkeit, daß sich eine Methode<br />

innerhalb einer Oberklasse durch eine gleichnamige Methode einer untergeordneten<br />

Klasse überdecken läßt. Dabei machen wir von der Möglichkeit Gebrauch, daß sich<br />

zur Kommunikation eines Objektes mit sich selbst – neben der Pseudovariablen<br />

“self” – eine Pseudovariable namens “super” verwenden läßt.<br />

Hinweis: Die Pseudovariable “super” ergänzt die Liste der bislang vorgestellten Pseudovariablen<br />

“self”, “true”, “false” und “nil”.<br />

ˆ Die Pseudovariable “super” darf – genauso wie die Pseudovariable “self” – als<br />

Platzhalter innerhalb der Anforderungen einer Methode verwendet werden.<br />

Soll eine Methode ausgeführt werden, in der “super” aufgeführt ist, so wird<br />

“super” durch das Empfänger-Objekt der Message ersetzt, durch die die Methode<br />

zur Ausführung gelangen soll.<br />

ˆ Das Empfänger-Objekt, das den Platz von “super” bei der Ausführung einnimmt,<br />

beginnt die Suche nach der auszuführenden Methode – im Gegensatz<br />

zur Situation beim Einsatz von “self” – nicht innerhalb der Klasse, aus der es<br />

instanziiert wurde, sondern in dessen “Super-Klasse”. Diese Klasse ist dadurch<br />

bestimmt, daß sie innerhalb der Klassen-Hierarchie gleich der direkten Oberklasse<br />

derjenigen Klasse ist, in der die Methode identifiziert wird, in deren<br />

Anforderungen das Empfänger-Objekt den Platz von “super” einnimmt.<br />

Hinweis: Es ist zu beachten, daß die Pseudovariablen “super” und “self” immer das<br />

Empfänger-Objekt der auszuführenden Methode bezeichnen. Sie unterscheiden sich lediglich<br />

durch die Klasse, ab der die Methodensuche beginnt.<br />

Im Unterschied zur Pseudovariablen “super” ist es beim Einsatz von “self” möglich, die<br />

Pseudovariable “self” als Ergebnis-Objekt einer Methode festzulegen. Auch ist es möglich,<br />

“self” als Argument einer Keyword-Message aufzuführen oder innerhalb einer Methode<br />

einer Variablen zuzuweisen. Die Pseudovariable “self” sollte nur dann als Platzhalter eingesetzt<br />

werden, wenn die auszuführende Methode auch tatsächlich innerhalb der Klasse<br />

vereinbart ist, aus der das Empfänger-Objekt instanziiert wurde. Andernfalls ist die Pseudovariable<br />

“super” zu verwenden.<br />

Die Pseudovariable “super” läßt sich z.B. dann einsetzen, wenn wir in mehreren<br />

Klassen, die innerhalb der Klassen-Hierarchie einander untergeordnet sind, gleichnamige<br />

Methoden-Selektoren derart verwenden wollen, daß eine Methode durch eine<br />

gleichnamige Methode einer Oberklasse überdeckt werden soll.<br />

Um diesen Sachverhalt zu veranschaulichen, betrachten wir die folgende Situation:

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!