03.11.2013 Aufrufe

SMALLTALK K1ex127-.45ex51275ahler/Bothner

SMALLTALK K1ex127-.45ex51275ahler/Bothner

SMALLTALK K1ex127-.45ex51275ahler/Bothner

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

188 9 Einrichtung und Verarbeitung von Sammlern<br />

derjenigen Klasse instanziiert wird, aus der der als Empfänger-Objekt aufgeführte<br />

Sammler instanziiert wurde. In diesem Sammler werden diejenigen<br />

Objekte aneinandergereiht, die im Empfänger-Objekt und im Argument der<br />

binären Message “,” gesammelt sind. Dabei wird die Reihung der Objekte<br />

von den Objekten eingeleitet, die aus dem Empfänger-Objekt übernommen<br />

wurden.<br />

Zum Beispiel kann man einen Sammler “VarGesamt” durch die Anforderung<br />

VarGesamt := VarIC1,VarIC2<br />

einrichten, in dem sämtliche Objekte gesammelt werden, die in den Sammlern<br />

“VarIC1” und “VarIC2” enthalten sind. Dabei werden die in “VarIC2” gesammelten<br />

Objekte den Objekten von “VarIC1” angefügt.<br />

Die Basis-Klasse “FixedSizeCollection”<br />

Unterhalb der abstrakten Klasse “FixedSizeCollection” sind alle diejenigen Klassen<br />

als Unterklassen von “IndexedCollection” vereinbart, bei denen die Anzahl ihrer<br />

Objekte nicht variabel ist. Dies bedeutet, daß bei einer Instanziierung die Anzahl<br />

derjenigen Objekte festgelegt werden muß, die innerhalb des Sammlers enthalten<br />

sein können. Die jeweils vorzusehende Anzahl ist unveränderbar und kann folglich<br />

nicht erhöht werden.<br />

Zum Beispiel wird durch die Anforderung<br />

VarArray := Array new: 3<br />

bestimmt, daß “VarArray” auf eine Instanz der Klasse “Array” weist, in der 3<br />

Objekte gesammelt werden können (siehe unten).<br />

In diesem Fall weist “VarArray” auf eine Sammlung, in der die Pseudovariable “nil”<br />

in dreifacher Ausführung gespeichert ist.<br />

ˆ Grundsätzlich wird ein Sammler, bei dem die Anzahl der in ihm sammelbaren<br />

Objekte eine starre Größe ist, derart instanziiert, daß er mit der für ihn<br />

festgelegten Anzahl von Objekten geeignet – z.B. mit “nil” – vorbesetzt wird.<br />

9.4.4 Die Basis-Klasse “Array”<br />

Um einen geordneten Sammler für beliebige Objekte einzurichten, auf dessen Objekte<br />

– über eine ganze Zahl als Index – direkt zugegriffen werden kann und in dem<br />

sich gleiche Objekte in mehrfacher Ausführung sammeln lassen, kann eine Instanz<br />

der Basis-Klasse “Array” verwendet werden. Dabei ist zu beachten, daß die Anzahl<br />

der sammelbaren Objekte nicht variabel ist, sondern bei der Instanziierung festgelegt<br />

werden muß. Eine Instanz der Klasse “Array” wird als Array bezeichnet.<br />

Hinweis: Instanzen der Klasse “Array” lassen sich innerhalb von Keyword-Messages zur<br />

Übergabe von Argumenten einsetzen. Anstatt für jedes Argument einen Keyword-Selektor<br />

zu verwenden, ist es bei mehr als vier Argumenten üblich, sie innerhalb eines Arrays zu<br />

sammeln und den Array als Argument zu übergeben.

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!