oop-seite von Wolfgang Kramer
im intranet schüler informationssystem isi
 

<zurück

logo-kr.gif (29913 Byte)


Objektorientierte Programmierung OOP

OOP ist eine Methode der Softwareentwicklung, die die den Entwurf und die Pflege komplexer Programme durch geeignete Werkzeuge unterstützen soll.


Geschichte

1960
Simula
entwickelt in Norwegen von O.J.Dahl und Kristen Nygaard
Computer Simulation der realen Welt

1970
Smalltalk
entwickelt bei XEROX Palo Alto von Alan Kay
reine OOP Sprache

1980
C++
entwickelt bei AT&T Bell von Bjarne Stroustrup
hybride Sprache

1990
JAVA
entwickelt bei SUN
reine OOP Sprache; plattformunabhängig


Zentrale Begriffe der OOP


Objekt

Objekte sind die fundamentalen Bausteine eines Programms, sie werden durch Klassen beschrieben.
Ein Objekt ist ein Software"Paket"; das eine Menge zueinander in Beziehung stehender Daten (Attribute bzw. Eigenschaften, gespeichert in geeigneten Variablen) und Methoden (Funktionen und Prozeduren) für die Verarbeitung dieser Daten enthält.
Objekte werden aus Klassen abgeleitet.

Klasse

Eine Klasse ist eine Schablone, ein Bauplan für die Definition der Methoden und Attribute für die Objekte. Unterklassen und Oberklasse bilden die Klassen-Hierarchie, die in einem Baumdiagramm dargestellt werden kann. In der Klassenhierarchie weit oben stehende Klassen werden als abstrakte Klassen bezeichnet, sie dienen zur Beschreibung grundsätzlicher Attribute und Methoden, ohne diese weiter konkret zu beschreiben.
Auf Basis der konkret definierten Klassen werden durch Konstruktoren Objekte erzeugt, die entsprechenden Speicherplatz im Rechner belegen. Die Freigabe des Speicherplatzes erfolgt durch Destruktoren, durch die nicht mehr benötigte Objekte aus dem Speicherbereich entfernt bzw. gelöscht werden.

Nachricht

Eine Nachricht ist ein Signal von einem Objekt (Sender) an ein anderes (Empfänger). Mittels dieser Nachricht wird das Empfänger-Objekt aufgefordert eine seiner Methoden auszuführen. Eine Nachricht besteht aus drei Teilen;
- Name des Empfängers
- auszuführende Methode
- benötigte Parameter

Beispiel: Fahrzeug3.beschleunigen(60)

Methode

Eine Prozedur, die in einer Klasse oder einem Objekt definiert ist. Die Kommunikation zwischen Objekten geschieht über Methoden. Es gibt zwei Kategorien von Methoden: öffentliche und nichtöffentliche Metoden. In der Klassendefinition ist die Kategorie anhand der Schlüsselworte public bzw. private zu erkennen.

Exemplar

Mehrere, aus einer Klasse generierte Objekte werden als Exemplare bzw. Instanzen einer Klasse bezeichnet.
Beispiel: Durch Aufruf des Konstruktors werden die Objekte PKW1 und PKW2 aus der Klasse PKW erzeugt.

Vererbung

Unterklassen haben dieselben Attribute und Methoden wie die Klassen, die im Pfad der Klassen-Hierarchie darüber liegen. Die Anzahl der Attribute oder die Anzahl der Methoden kann in den Unterklassen erweitert werden. Damit können weitere Attribute und Methoden dazukommen und die Unterklssse konkreter beschreiben.

Kapselung

Daten werden zusammen mit den zugehörigen Prozeduren gespeichert. Die Daten sind von außerhalb nur über die Methoden veränderbar; sie sind gekapselt. Die Kapselung der Daten erfolgt durch das Schlüsselwort private. Eine Deklaration von Daten als public verbietet sich daher schon aus dem Anspruch die Daten vor unbeabsichtigten Manipulationen zu schützen. Lediglich in Sonderfällen bei sog. befreundeten Klassen kann es sinnvoll sein Teile der Attribute als public zu deklarieren.

Abstraktion

Abstrakte Klassen besitzen keine Exemplare. Sie dienen nur zur Organisation der Klassen-Hierarchie. Sie werden auch als virtuelle Klassen bezeichnet.

Polymorphie

Polymorphie bezeichnet die Möglichkeit Methoden mit gleichem Namen in verschiedenen Objekten zu verwenden.


Literatur

David A. Taylor, Objektorientierte Technologien, Addison-Wesley,1992
Stefan Rieck, OOP für Ingenieure, VDE Verlag, 2002