1. Einführung

1.1 Geschichte der objektorientierten Programmiersprachen

1967
Simula (gilt als 1. Sprache, die alle wichtigen Prinzipien der Objektorientierung unterstützt)
1972
Smalltalk (1. Sprache, die den Begriff "Objektorientierung" prägte und die zum erstenmal die Konzepte der OOP definierte)
ab 1980
kommerzieller Einsatz von OO-Sprachen ("early adopters")
1982
C mit Klassen (entwickelt von Bjarne Stroustrup bei AT&T)
1983
C++
1993
Java
2000
C#

Weitere OO-Sprachen sind PHP 5, OBJECT-PASCAL, MODULA 3, OBERON und EIFFEL.

Ab 1992 wurden die meisten kommerziell erfolgreichen Anwendungen in C++ geschrieben (z.B. WORD)

Smalltalk gewann ab 1990 an Bedeutung und ab 1993 wurden in Österreich etliche Client/Server-Anwendungen in dieser Sprache geschrieben. Allerdings wird Smalltalk zunehmend von Java verdrängt.

Derzeit ist sicherlich noch C++ die weitestverbreitete OO-Sprache, gefolgt von Java.

1.2 Das Schema einer objektorientierten Programmierumgebung

 
 
Eigene SW-Komponenten
 
 
 
 
Vorhandene SW-Komponenten
 
 
Programmierwerkzeuge
   (Editor, Compiler, ...)
Klassenbibliothek
Programmiersprache

Objektorientiert Programmieren bedeutet, für eigene Applikationen mittels Programmierwerkzeugen in der jeweiligen Programmiersprache neue Software-Komponenten basierend auf bereits bestehenden Software-Komponenten zu entwickeln (vergleiche das Bauen mit LEGO oder MATADOR). Dadurch erweitert man die vorhandene Bibliothek der Komponenten für die nächste Applikation.

Bekannte Entwicklungsumgebungen (bzw. Programmierumgebungen) sind:

Eine ausgezeichnete Experimentier-Entwicklungsumgebung zum Lernen der objektorientierten Programmierung mit Java ist:

Programmierwerkzeuge sind:
  • Editor
  • Compiler (Übersetzer)
  • Linker (Binder)
  • Builder (Ersteller)
     
  • Browser (Viewer)
     
  • GUI-Builder
  • Debugger
... zum Erstellen und Bearbeiten von Quellprogrammen
... zum Übersetzen von Quellprogrammen in eine Maschinensprache
... zum Einbinden von Bibliotheken und Klassen in bereits übersetzte Programme
... zum Erstellen von ausführbaren Programmen
    (sehr oft inkludiert der Builder bereits Compiler und Linker)
... zum Durchsuchen und Ansehen von Klassenbibliotheken,
    beinhaltet im Allg. auch ein Hilfe- und Dokumentationssystem
... zum Erstellen von grafischen Benutzeroberflächen (GUI = Graphical User Interface)
... zum Testen und Überwachen von Programmen und Programmdurchführungen


1.3 Anwendungsarchitektur

Ein typisches interaktives Informationssystem gliedert sich in folgende Bereiche:

Benutzerschnittstelle
(UI - User Interface)
Fachlogik
Datenhaltung
(Datei, Datenbank)

Jeder dieser Bereiche ist wiederum eine Kombination aus vorhandenen und applikationsspezifischen Komponenten.
In den Klassenbibliotheken von Programmier- bzw. Entwicklungsumgebungen gibt es sehr viele Komponenten für Benutzerschnittstellen und für Schnittstellen zu relationalen Datenbanken. Dagegen müssen für die Fachlogik viele applikationsspezifische Komponenten selbst entwickelt werden.


1.4 Anwendungsgebiete und Vorteile der Objektorientierung

Der Begriff OBJEKT bzw. OBJEKTORIENTIERUNG ist in den letzten Jahren ein richtiges Modewort geworden. Dabei wird mit diesen Begriffen oft Etikettenschwindel betrieben, weil aufgrund des mangelhaften Verständnisses der OO-Konzepte in objektorientierten Programmiersprachen einfach prozedural programmiert wird und die Vorteile der Objektorientierung nicht umgesetzt werden.
Dieses Buch versucht nun, dem Leser die OO-Konzepte verständlich nahezubringen und in den Beispielen die OO-Vorteile konsequent umzusetzen.

OO gibt es nicht nur in der Programmierung, sondern auch im Bereich
der Datenbanken (OODBMS = objektorientierte Datenbank-Management-Systeme) und
der SW-Entwicklung (OO-Analyse, OO-Design, OO-Entwurfs- und Analysemodelle), sowie
der grafischen Benutzeroberflächen (GUI).

Vorteile der OO-Technik - Kriterien für Applikationen

Die OOP zielt besonders auf Modularität, Wartbarkeit und Wiederverwendbarkeit ab.


Weiter
zu den Klassenbeispielen von Kapitel 2
zur Parameterübergabe (Kapitel 2.7.1)
zu Kapitel 3
zu den Klassenbeispielen von Kapitel 4
zu den Java-Klassenbeispielen von Kapitel 5.19.1 (Exceptions)
zu den Java-Klassenbeispielen von Kapitel 6 (Ein-/Ausgabe von Daten)
zu den Java-Klassenbeispielen von Kapitel 7 (GUI)
zu Kapitel 8 (JDBC)
zu den C#-Klassenbeispielen von Kapitel 9.19.1 (Exceptions)
zu den C#-Klassenbeispielen von Kapitel 10 (Ein-/Ausgabe von Daten)
zu Kapitel 12 (PL/I)
zu Kapitel 13 (Reservierte Worte)
Zurück
zum Anfang dieses Kapitels
zum Inhaltsverzeichnis
 
zum Vorwort
Zur
Java-Dokumentation der Java-Beispiele