o Datenkapselung
o Objekt
o Klasse
o Vererbung
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: Anderung 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?
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++ |
'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
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
Haupt | Fügen Sie Referat | Kontakt | Impressum | Nutzungsbedingungen