
Kapitel 9 - Fortsetzung
Sie können die Anwendungsbereich in Ihrem Bereich auf mehrere Art und Weisen beeinflussen. Dies kann mit Instanz Variablen ebenso geschehen wie mit normalen Variablen die ausserhalb oder innerhalb der Funktion definiert wurden. In der folgenden Diskussion verwenden wir das Wort module um sich auf jede Art von Methodennummern oder Funktionsdefinitionen zu beziehen, die in einer einzelnen Datei vorkommen. Zu diesem Moment wissen Sie, das Instanz Variablen einen Anwendungsbereich haben, der limitiert ist auf die Instanz Methoden die in einer Klasse definiert werden. So hat jede Instanz Methode Zugang zu den Instanz Variablen direkt mit dem Namen ohne etwas spezielles tun zu müssen. Ebenso wissen Sie, dass Instanz Variablen von einer Subklasse vererbt werden. Auf vererbte Instanz Variablen haben Sie dann ebenfalls Zugriff - direct by name. Sie haben aber insgesamt drei Möglichkeiten um den Anwendungsbereich der Instanz Variablen mehr zu kontrollieren. Es sind dies:
Wenn Sie eine Klasse mit dem Namen Printer privat definieren wollen, welche zwei Instanz Variablen enthält, z.B. pageCount und tonerLevel, auf die nur innerhalb der Printer Klasse zugegriffen werden soll, dann könnte die Interface Section folgendermaßen aussehen:
@interface Printer: Object
{
@private
int pageCount;
int tonerLevel;
@protected
// jetzt folgen die anderen Instanzvariablen
}
...
@end;
Würde man jetzt eine Subklasse von Printer erzeugen, dann hätte man von dieser Subklasse keinen Zugang zu den beiden Instanz Variablen pageCount und tonerLevel. Erst jene Methoden die nach @protectet folgen, können von der Subklasse aus aufgerufen werden. Die @public Direktive macht es möglich, auf Instanz Variablen mit andern Methoden oder Funktionen zugreifen zu können. Damit sind die Daten aber nicht mehr gekapselt, sondern frei zugänglich und somit wird eines der Grundkonzepte objektorientierter Programmierung aufgehoben - eine Variante also, die eher nicht angewendet werden sollte.
weiter ---- Objective-C Index ---- Startseite----zurück
EINSTIEG
KAPITEL 1: SCHRITT FÜR SCHRITT ZUM ERSTEN PROGRAMM
KAPITEL 2: OBJEKTE, KLASSEN, INSTANZEN UND METHODEN
KAPITEL 3: DIE VERSCHIEDENEN DATENTYPEN
KAPITEL 4: DIE PROGRAMMSCHLEIFEN
KAPITEL 5: ENTSCHEIDE DICH, ENTWEDER ODER....
KAPITEL 6: UND NOCHMALS KLASSEN
KAPITEL 7: VERERBUNG
KAPITEL 8: POLYMORPHISMUS, DYNASCHISCHE TYPISIERUNG UND DYNAMISCHES BINDEN
KAPITEL 9: NOCH MEHR DATENTYPEN UND VARIABLEN
KAPITEL 10: CATEGORIES, POSING AND PROTOCOL
KAPITEL 11: DER PRÄPROZESSOR