Vererbung und die Modifikatoren
vorlesung_2013_11_21.zip - Während der Vorlesung am 21.11.2013 entwickelte Programme
21.11.2013: Hinweise zu Unterschieden zwischen C++ und Java bei Modifikatoren - vergl. Beispiele in Vorlesung
- Java und C++: Modifikatoren beziehen sich auf Klassen, nicht auf Objekte.
- protected in C++ bezieht sich auf Klassenzugehörigkeit
- protected in Java bezieht sich auf Package-Zugehörigkeit
- kein Modifikator wird in Java als protected interpretiert
- kein Modifikator wird in C++ als private interpretiert
|
21.11.2013: Übung zu Modifikatoren und Arrays
- Alle Aufgabenteile sind in Java und danach in C++ umzusetzen
- Grundlage ist VRML04 und QuaderB im Ordner uebung_vrml_generator
|
- Kapseln Sie die Farb-Attribute von QuaderB und schreiben Änderungs- und Zugriffsmethoden für diese.
- Ändern Sie die Manipulator-Klasse aus der letzten Übung so, dass ein ganzes Array an QuaderB-Objekten grün gefärbt werden kann. Testen Sie dies an einem geeigneten Beispiel
- QuaderC erbt von QuaderB. - Setzen Sie die Attribute von QuaderB auf protected und fügen die "aendern()"-Methode zum grün färben in QuaderC ein. Machen Sie geeignete Tests in C++ und Java.
|
Erbt KLasse B von Klasse A, so steht in der Kopfzeile von Klasse B nach bisherigem Wissensstand:
Dabei ist das Schlüsselwort public
ein so genannter Modifikator, der
festlegt, welche Zugriffsrechte die abgeleitete Klasse auf die Attribute und Methoden der
Basisklasse hat. Weitere alternativ einsetzbare Modifikatoren sind:
private
und protected
Zunächst einmal ist festzuhalten:
- Eine abgeleitete Klasse kann niemals auf private-Elemente der Basisklasse zugreifen.
- Wird der Modifikator weggelassen, setzt der Compiler
private als Modifikator ein.
protected -Elemente dienen dazu, Elemente einer Klasse zwar von Außen zugreifbar zu machen, diese Zugriffsmöglichkeit von Außen aber einzuschränken, wenn sie von einer anderen Klasse geerbt werden.
|
Die UML-Notation für die Modifikatoren ist:
- -
private
- +
public
- #
protected
|
- Die Bedeutung der Modifikatoren für die Vererbung ist den folgenden beiden Tabellen (Kapitel 8.1 und 8.2) zu entnehmen.
- Die erste Tabelle bezieht sich auf public-Vererbung von Klasse A an Klasse B, die zweite auf protected, private-Vererbung macht keinen Sinn.
- Auch die Methoden und Attribute der Basisklasse A und der erbenden Klasse B haben Modifikatoren.
- Die beiden Tabellen zeigen, wie die Zugreifbarkeit auf diese Elemente von der Basisklasse, von der abgeleiteten Klasse und von Außen aus vom jeweiligen Modifikator und vom Vererbungsmodifikator abhängt.
|