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.

170 8 Klassen und Meta-Klassen<br />

8.4 Elemente einer Klassen-Vereinbarung<br />

Nachdem wir Klassen-Variablen und Pool-Dictionary-Variablen kennengelernt haben,<br />

besitzen wir sämtliche Kenntnisse, um eine zusammenfassende Aussage über<br />

die charakteristischen Eigenschaften einer Klassen-Vereinbarung machen zu können.<br />

Auf der Basis der im Abschnitt 5.3 angegebenen vorläufigen Form läßt sich eine<br />

Klassen-Vereinbarung insgesamt durch die folgende Anforderung festlegen:<br />

subclass: #<br />

instanceVariableNames: ’instanz-variablen’<br />

classVariableNames: ’klassen-variablen’<br />

poolDictionaries: ’pool-dictionary-variablen’<br />

Durch diese Anforderung wird dem Empfänger-Objekt “” eine Keyword-<br />

Message mit den Selektoren “subclass:”, “instanceVariableNames:”, “classVariableNames:”<br />

und “poolDictionaries:” zugestellt.<br />

Die neu eingerichtete Klasse, deren Name als Argument des Selektors “subclass:”<br />

aufgeführt werden muß, wird der Klasse “” unmittelbar untergeordnet<br />

und erhält den Klassennamen “”, d.h. “” wird zur direkten<br />

Unterklasse der Oberklasse “”.<br />

Die Eigenschaften einer Instanz der Klasse “” sind bestimmt durch<br />

• den Besitz von Instanz-Variablen,<br />

• die Zugriffsmöglichkeit auf Klassen-Variablen und<br />

• auf Pool-Dictionary-Variablen.<br />

Die dazu erforderlichen Angaben werden als Argumente hinter den Message-Selektoren<br />

“instanceVariableNames:”, “classVariableNames:” und “poolDictionaries:” aufgeführt.<br />

Sofern für einen dieser Selektoren keine Angabe gemacht werden soll, ist eine Zeichenkette<br />

in der Form (’ ’) als Argument anzugeben.<br />

Zusammenfassend können wir die Zugriffsmöglichkeiten, die einzelne Instanzen auf<br />

temporäre Variablen, Instanz-Variablen, Pool-Dictionary-Variablen, Klassen-Variablen<br />

und globale Variablen besitzen, durch die nachfolgende Abbildung 8.18 beschreiben.<br />

Wichtig ist der folgende Sachverhalt:<br />

ˆ Während der Zugriff auf die innerhalb einer Klasse vereinbarten Klassen- und<br />

Pool-Dictionary-Variablen von jeder Instanz dieser Klasse ausgeführt werden<br />

darf, kann eine Instanz immer nur auf ihre eigenen Instanz-Variablen zugreifen.

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!