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.

9.4 Sammler mit direktem Zugriff 193<br />

9.4.7 Die Basis-Klasse “OrderedCollection”<br />

Steht für einen Sammler, dessen Objekte geordnet und über einen Index direkt<br />

zugreifbar sein sollen, die maximale Anzahl der zu sammelnden Objekte nicht von<br />

vornherein fest, so ist die Instanziierung eines Arrays nicht sinnvoll. In dieser Situation<br />

bietet es sich an, eine Instanz der Basis-Klasse “OrderedCollection” einzurichten.<br />

ˆ Bei einer Instanz der Klasse “OrderedCollection” handelt es sich um einen<br />

geordneten Sammler mit einer variablen Anzahl von Objekten, auf die ein direkter<br />

Zugriff möglich ist und von denen gleiche Objekte mehrfach auftreten<br />

dürfen. Die Ordnung der gesammelten Objekte ist durch die Einfügereihenfolge<br />

bestimmt, in der die einzelnen Objekte dem Sammler hinzugefügt werden.<br />

Um z.B. eine Instanz der Klasse “OrderedCollection” zu erzeugen, die mit den<br />

Objekten “2”, “1” und “3” – in dieser Reihenfolge – gefüllt ist, können wir die<br />

folgenden Anforderungen stellen:<br />

VarOrd := OrderedCollection new.<br />

VarOrd add: 2; add: 1; add: 3<br />

Grundsätzlich werden Objekte durch den Einsatz der Basis-Methode “add:” derart<br />

gesammelt, daß neu hinzugefügte Objekte immer hinter sämtlichen bereits im<br />

Sammler enthaltenen Objekten angefügt werden.<br />

Hinweis: Die gesammelten Objekte selbst brauchen untereinander nicht vergleichbar zu<br />

sein.<br />

ˆ “add:”:<br />

In dem Sammler, der als Empfänger-Objekt der Message “add:” angegeben<br />

ist, wird das als Argument aufgeführte Objekt hinter allen bereits gesammelten<br />

Objekten angefügt.<br />

Als Ergebnis-Objekt resultiert dasjenige Objekt, das dem Sammler hinzugefügt<br />

wurde.<br />

Soll als Ergebnis-Objekt ein Sammler mit seinen Objekten ermittelt werden, so<br />

können wir dazu die Messages “with:”, “with:with:”, “with:with:with:” oder “with:-<br />

with:with:with:” einsetzen.<br />

ˆ “with:”, “with:with:”, “with:with:with:”, “with:with:with:with:”:<br />

Durch den Einsatz einer dieser Klassen-Methoden läßt sich eine Instanz der<br />

Klassen “Bag”, “Set”, “Array”, “String”, “OrderedCollection” oder “Sorted-<br />

Collection” mit einem, zwei, drei oder vier Objekten einrichten. Dabei sind<br />

die jeweiligen Objekte als Argument des Selektors “with:” aufzuführen. Als<br />

Ergebnis-Objekt resultiert der als Empfänger-Objekt aufgeführte Sammler<br />

mit den hinzugefügten Objekten.<br />

Hinweis: Eine mehr als vierfache Wiederholung des Selektors “with:” ist nicht erlaubt.<br />

Somit ist die folgende Anforderung mit dem Einsatz der Message “with:with:with:”<br />

in der Form

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!