07.10.2013 Aufrufe

Vorlesungsskript - Hochschule Emden/Leer

Vorlesungsskript - Hochschule Emden/Leer

Vorlesungsskript - Hochschule Emden/Leer

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.

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.

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!