Inhaltsverzeichnis:
1. Ziele der OOP />
2. Geschichte
3. Wichtige Konzepte und Begriffe
o Datenkapselung
o Objekt
o Klasse
o Vererbung
4. OOP anhand eines Beispiels in C++
5. Erläuterung einiger Begriffe der OOP in C++
________________________________________
Ziele - Was soll durch die OOP erreicht werden?
. bessere Wartbarkeit
. Wiederverwendbarkeit
Geschichte
. Ende der 70er-Jahre: PARC (OOP, GUI, Maus, Laserdrucker,...)
. Sprachen:
o \"reine\" OOPS: SMALLTALK
o \"Mischsprachen\": C++, TurboPascal (ab 5.5)
Wichtige Konzepte und Begriffe
Datenkapselung
. komplexe Datenstrukturen (z.B. Stack) werden vom Anwendungsprogramm nicht direkt verwendet sondern nur mittels sogenannter \"Zugriffs-Funktionen\" (z.B.: push(x), pop())
. Implementierung der Datenstruktur (z.B. Stack: Array oder Liste oder...?) bleibt dem Anwendungsprogrammierer verborgen (=Information Hiding)
. Vorteil: Änderung bei der Datenstruktur-Implementierung hat keine Auswirkung auf das Anwendungsprogramm
. Konzept bereits vor der OOP bekannt
Realisierung z.B. in C: eigener Modul für Datenstruktur, \"static-globale\" Variablen
Problem: mehrere Instanzen einer Datenstruktur?
Objekt
. hat einen inneren Zustand, besitzt Eigenschaften
. bietet Methoden an, um z.B. seine Eigenschaften zu manipulieren;
die Methoden bestimmen das \"Verhalten eines Objekts
. reagiert auf Nachrichten von anderen Objekten durch Ausführung einer Methode bzw. sendet Nachrichten an andere Objekte um deren Methoden zu aktivieren
. Vergleich mit \"herkömmlichen\" (nicht-oo) Begriffen:
OBJEKTORIENTIERT \"HERKÖMMLICH\" BEISPIEL
Objekt (strukturierte) Variable Karl Müller
Eigenschaft Wert einer Variablen (-Komponente) 23 Jahre alt
Methode Funktion / Prozedur erlerne etwas
Nachricht Aufruf einer Funktion / Prozedur lerne C++
Klasse
. \"Bauplan\" für gleichartige Objekte
. legt Eigenschaften und Methoden fest
. Vergleich mit \"herkömmlichen\" (nicht-oo) Begriffen:
Klasse = Daten-Typ
Beispiel: Person
. Objekte sind \"Instanzen\" einer Klasse
Vererbung
. zum Aufbau einer Hierarchie von ähnlichen Klassen
. Unterklasse (= abgeleitete Klasse) erbt von einer Oberklasse (= Basisklasse)
. Unterklasse:
o erbt Eigenschaften und Methoden der Oberklasse
o kann Eigenschaften hinzufügen
o kann neue Methoden hinzufügen, geerbte Methoden durch eigene ersetzen
. Vererbung bewirkt Spezialisierung
. Vererbung stellt \"Is-A\" - Beziehung dar (z.B. Schüler ist-eine Person)
. Mehrfach-Vererbung: Unterklasse erbt von mehreren Oberklassen
|