Vorlesungsskript - Hochschule Emden/Leer
Vorlesungsskript - Hochschule Emden/Leer
Vorlesungsskript - Hochschule Emden/Leer
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
c○ Prof. Dr. B. Bartning, HS <strong>Emden</strong>/<strong>Leer</strong> Rumpfskript ” Informatik I/II“ (WS/SS 2010/11) 75<br />
KLASSE Keller<br />
VERBORGEN VARIABLE speich TYP Ganzzahl-FELD[100]<br />
VERBORGEN VARIABLE zähler TYP Ganzzahl (Erstbelegung 0)<br />
ÖFFENTLICH PROZEDUR schiebe(wert TYP Ganzzahl)<br />
// hier ohne Fehlerbehandlung (Überlauf)<br />
speich[zähler] ← wert<br />
zähler ← zähler+1<br />
RÜCKSPRUNG<br />
ENDE PROZEDUR<br />
ÖFFENTLICH FUNKTION hole() TYP Ganzzahl<br />
// hier ohne Fehlerbehandlung<br />
zähler ← zähler-1<br />
RÜCKSPRUNG WERT speich[zähler]<br />
ENDE FUNKTION<br />
ENDE KLASSE<br />
// Benutzung des Kellerspeichers:<br />
ANFANG<br />
VARIABLE keller1, keller2 TYP Keller<br />
VARIABLE zahl TYP Ganzzahl<br />
Lies zahl<br />
keller1.schiebe(zahl)<br />
keller2.schiebe(199)<br />
Schreibe keller1.hole() // eingeles. Zahl<br />
Lies zahl<br />
keller2.schiebe(zahl)<br />
Schreibe keller2.hole() // eingeles. Zahl<br />
Schreibe keller2.hole() // 199<br />
ENDE<br />
Neu ist das Schlüsselwort KLASSE (und ENDE KLASSE); hierdurch werde eine Klasse<br />
definiert. Der Zugriff auf eine Methode eines Objekts geschehe durch die Aufrufsyntax<br />
ObjektName.MethodenName ( ... ) .<br />
(6.44) Zur Verwirklichung von Klassen-Baueinheiten in C ++ siehe (Kap. 9).<br />
(6.45) ↑↑<br />
(a) Die Einführung des Klassentyps, d. h. die Kapselung von Daten und Funktionen, reicht noch<br />
nicht aus, um die reale Welt genügend einfach und übersichtlich beschreiben zu können.<br />
Manche Autoren sprechen daher bei den bisher geschilderten Gedanken von objektbasierter<br />
Programmierung, die zugehörigen Datentypen werden auch manchmal abstrakte Datentypen<br />
genannt. Die Objektorientierung erhält ihre Mächtigkeit erst durch die Einführung von<br />
Beschreibungsmöglichkeiten für Ähnlichkeiten von Klassen: die Vererbung 〈inheritance〉.<br />
Eine Oberklasse (〈super class〉, in C ++ Basisklasse genannt 〈base class〉) vererbt ihre Merkmale<br />
(Daten und Funktionen) an eine Unterklasse (〈subclass〉, in C ++ abgeleitete Klasse<br />
genannt 〈derived class〉). Diese erhält die Möglichkeit, diese Merkmale zu erweitern oder zu<br />
überschreiben (ersetzen).<br />
(b) Auch zeigt es sich, dass es manchmal hilfreich ist, Klassen zu formulieren, deren Elemente<br />
vom Typ her noch nicht festgelegt sind; eine Festlegung erfolgt erst, wenn die Klasse eingesetzt<br />
wird: Schablone 〈template〉. Schablonen werden insbesondere bei Containerklassen<br />
(oder kurz Containern) wichtig, bei Klassen, die eine Ansammlung von Elementen eines<br />
Typs verwalten.<br />
Die Vererbung wird in (Kap. 11.3) eingeführt, Schablonen können leider nicht besprochen werden.