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.

168 8 Klassen und Meta-Klassen<br />

Die Methode “initZaehlerPool” verabreden wir in den Klassen “ZaehlerInWerteErfassung”<br />

und “ZaehlerOrWerteErfassung” in der folgenden Form als Instanz-Methode:<br />

initZaehlerPool<br />

(ZaehlerPoolDictionary at: #ZaehlerPool) isNil<br />

ifTrue: [ZaehlerPoolDictionary at: #ZaehlerPool put: 0]<br />

Um zu prüfen, ob noch keine Instanziierung vorgenommen wurde und daher dem<br />

Key “#ZaehlerPool” die Pseudovariable “nil” nach wie vor als Value zugeordnet<br />

ist, wird die Basis-Methode “isNil” eingesetzt.<br />

ˆ “isNil”:<br />

Handelt es sich beim Empfänger-Objekt der Message “isNil” um die Pseudovariable<br />

“nil”, so resultiert die Pseudovariable “true” als Ergebnis-Objekt –<br />

andernfalls ist das Ergebnis-Objekt gleich der Pseudovariablen “false”.<br />

Um den aktuellen Zählerstand abzurufen, vereinbaren wir in den beiden Klassen<br />

“InWerteErfassung” und “OrWerteErfassung” die Klassen-Methode “anzeigenZaehlerPool”<br />

in der folgenden Form:<br />

anzeigenZaehlerPool<br />

Transcript cr;<br />

show: ’Anzahl der bislang insgesamt erfaßten Werte: ’;<br />

show: (ZaehlerPoolDictionary at: #ZaehlerPool) printString<br />

Hinweis: Die Methode “anzeigenZaehlerPool” hätten wir auch als Instanz-Methode vereinbaren<br />

können.<br />

Als weitere Methode legen wir in beiden Klassen jeweils die Instanz-Methode “erfassenWert:”<br />

durch die Vereinbarung<br />

erfassenWert: aPane<br />

super erfassenWert: aPane.<br />

ZaehlerPoolDictionary<br />

at: #ZaehlerPool<br />

put: ((ZaehlerPoolDictionary at: #ZaehlerPool) + 1)<br />

fest, so daß sich insgesamt die folgende Situation ergibt:

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!