oop-seite von Wolfgang Kramer
|
|
OOP ist eine Methode der Softwareentwicklung, die die den Entwurf und die Pflege komplexer Programme durch geeignete Werkzeuge unterstützen soll.
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
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.
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.
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 ParameterBeispiel: Fahrzeug3.beschleunigen(60)
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.
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.
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.
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.
Abstrakte Klassen besitzen keine Exemplare. Sie dienen nur zur Organisation der Klassen-Hierarchie. Sie werden auch als virtuelle Klassen bezeichnet.
Polymorphie bezeichnet die Möglichkeit Methoden mit gleichem Namen in verschiedenen Objekten zu verwenden.
David A. Taylor, Objektorientierte Technologien, Addison-Wesley,1992
Stefan Rieck, OOP für Ingenieure, VDE Verlag, 2002