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.

8.2 Klassen-Variablen 161<br />

die letzte Anforderung innerhalb der Methoden-Vereinbarung von “new”:<br />

∧ varWerteErfassung<br />

Hinweis: Ohne den Einsatz von “∧” wäre die Klasse “ZaehlerWerteErfassung” das Ergebnis-Objekt<br />

von “ZaehlerWerteErfassung new”, so daß die Message<br />

sammelnWerte: ’Jahrgangsstufe 11’<br />

die Suche nach einer Klassen-Methode namens “sammelnWerte:” auslösen würde. Da eine<br />

derartige Klassen-Methode nicht existiert, würde eine Fehlermeldung im Walkback-Fenster<br />

resultieren.<br />

Da eine Klassen-Variable grundsätzlich mit der Pseudovariablen “nil” vorbesetzt<br />

ist, läßt sich die Zuordnung der ganzen Zahl “0” bei der erstmaligen Instanziierung<br />

dadurch erreichen, daß die Instanz-Methode “initZaehler” in der folgenden Form<br />

innerhalb der Klasse “ZaehlerWerteErfassung” verabredet wird:<br />

initZaehler<br />

Zaehler isNil ifTrue: [Zaehler := 0]<br />

Nachdem wir mittels des Klassen-Hierarchie-Browser-Fensters die Klassen-Methode<br />

“new” – bei aktiviertem Optionsfeld “class” – und die Instanz-Methode “initZaehler”<br />

– bei aktiviertem Optionsfeld “instance” – eingerichtet haben, können wir eine<br />

Instanziierung der Klasse “ZaehlerWerteErfassung” z.B. wie folgt im Workspace-<br />

Fenster anfordern:<br />

WerteErfassung11 := ZaehlerWerteErfassung new<br />

Bei dieser Instanziierung wird die Instanz-Methode “initZaehler” durch<br />

varWerteErfassung initZaehler<br />

zur Ausführung gebracht, so daß durch<br />

Zaehler isNil ifTrue: [Zaehler := 0]<br />

der Klassen-Variablen “Zaehler” der Wert “0” zugeordnet wird.<br />

Damit die Erhöhung des Inhalts von “Zaehler” bei der Erfassung eines neuen Punktwertes<br />

durchgeführt wird, müßte eigentlich die Methode “erfassenWert:”, die innerhalb<br />

der Klasse “WerteErfassung” in der Form<br />

erfassenWert: aPane<br />

werteBag add: (self paneNamed: ’eingabeFeld’) contents.<br />

(self paneNamed: ’eingabeFeld’) contents: ’’.<br />

(self paneNamed: ’eingabeFeld’) setFocus<br />

vereinbart ist, durch die folgende Zuweisung ergänzt werden:<br />

Zaehler := Zaehler + 1

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!