Algorithmen und Programmierung III - Daten- und Programmstrukturen - WS 00/01 Peter Löhr Teil A - Datenabstraktion und objektorientierte Programmierung Teil B - Datenstrukturen und Algorithmen Teil C - Datenspeicherung
Teil A 1 Klassenbasierte Programmierung 2 Datenabstraktion 3 Vererbung und Polymorphie 4 Spezifikation 5 Verifikation
Objektorientierte Programmierung ist imperative Programmierung mit Klassen Datenabstraktion Vererbung 1 Klassenbasierte Programmierung
1.1 Terminologie betr. Strukturierung imperativer Programme klassenbasierte prototypbasierte Programmierung modulbasierte (prozedurale)
1.2 Programmiermethodik Klassen ohne Operationen für einfache, insbesondere konstante Objekte, für globale Konstanten Klassen ohne Attribute für Bündelung statischer Prozeduren Klassen mit statischen und nichtstatischen Attributen ermöglichen „überlappende Objekte“ mit gemeinsam benutzten Daten (shared data)
1.3 Innere Klassen Geschachtelte Klassen - member class - nested top-level class Lokale Klassen - local class - anonymous class
1.4 Geschichte der objektorientierten Programmierung Statische T ypen K lassen A bstraktion V erererbung 1960Algol 60Naur, Bauer,... x Simula 67Dahl, Nygaard xx - x 1977CLULiskov, Snyder xx x SmalltalkGoldberg, Ingalls,... -x x x 1985C++Stroustrup xx x x 1987EiffelMeyer xx x x JavaGosling,... xx x x