Objektorientierte Programmiertechnik

Programmiersprachen lassen sich in Familien einteilen. Die objektorientierten Programmiersprachen gehören, genau wie die prozeduralen Programmiersprachen, zur Familie der imperativen Sprachen. Bei imperativen Programmiersprachen besteht ein Programm aus einer Folge von Befehlen, die beschreibt, wie und in welchen Schritten ein Problem gelöst wird. Die prozedurale Programmiersprachen orientiert sich sehr stark an der Von-Neumann-Architektur. Diese Architektur beschreibt den schematischen Aufbau unserer heutigen Rechner. Bei prozeduralen Programmiersprachen werden Daten im Speicher explizit durch Befehle verändert. Dadurch werden die Ergebnisse nachfolgender Berechnungen beeinflusst. Für einen komfortablen Zugriff auf den Speicher wird in prozeduralen Sprachen das Konzept der Variablen genutzt.

Auch in objektorientierten Sprachen gibt es Variablen, die über bestimmte Befehle verändert werden, aber die objektorientierten Sprachen lösen sich konzeptionell weiter von der Arbeitsweise des Rechners und orientieren sich mehr an der fachlichen Aufgabenstellung. Objektorientierte Ansätze wollen eine natürliche Formulierung von Problemlösungen erreichen, indem sie sich mehr an der fachlichen Aufgabenstellung orientieren.

Das tun sie, indem sie Objekte in den Mittelpunkt der Betrachtung stellen. Was versteht man nun unter einem Objekt? Ein Objekt ist ersteinmal Gegenstand des Interesses. Falls wir z.B. die Auftragsverwaltung für ein Autohaus programmieren, sind eine Reihe von Objekten für uns von Interesse. Zum Beispiel ein Auto, welches wir auf Lager haben, oder der Kunde, der ein Auto bei uns bestellt, oder aber auch die Bestellung selber. Bei Objekten kann es sich also um Dinge, um Individuen oder um Begriffe handeln.

Wichtig ist, dass uns in der Programmierung immer nur ein relevanter Ausschnitt eines realen Objekts interessiert. Wenn wir z.B. einen Kunden betrachten, dann interessiert uns sein Name und seine Anschrift. Die Eigenschaft, dass er Klavier spielen kann, ist für unsere Auftragsverwaltung nicht wichtig. In der objektorientierten Programmierung schaffen wir also kein Abbild von realen Objekten, sondern wir beschäftigen uns nur mit, für die Aufgabe relevanten, Ausschnitten. Wir führen also eine vereinfachte Betrachtung durch.

Die objektorientierte Programmiertechnik bietet eine Reihe interessanter Konzepte, wie z.B. Vererbung und Polymorphie. Wir wollen uns in dieser Vorlesung nicht nur auf die Syntax konzentrieren, sondern insbesondere betrachten, wie wir die spezifischen Konzepte der objektorientierten Programmierung sinnvoll einsetzen können. Als Basis dient uns die Programmiersprache Java.

Themen

1.Überblick über die Begriffe Objekt, Klasse, Vererbung und Botschaften
2.Java Infrastruktur
3.Elementare Datentypen, Kontrollstrukturen, Ausdrücke und Operatoren
4.Objekte und Klassen
5.Speicherverwaltung
6.String (Zeichenkette)
7.Array (Feld)
8.Statische Methoden und Attribute
9.Pakete
10.Sichtbarkeit
11.Attribute (final) / Konstanten
12.Vererbung
13.Polymorphismus
14.Abstrakte Klassen / Schnittstellen
15.Collections (Sammlungen)
16.Wrapper-Klassen
17.Assoziationen
18.Typisierte Klassen
19.Innere Klassen / Anonyme Klassen
20.Exceptions
21.Grafikausgabe
22.Ereignisse / Event-Handling
23.GUI
24.Swing