Akademik

objektorientierte Programmierung
objektorientierte Programmierung
 
[Abk. OOP], Prinzip der Programmierung, bei dem die Manipulation von sog. Objekten durch Methoden sowie die Verbindung von Objekten und deren Interaktion im Vordergrund stehen. Der Programmierer muss sich - anders als bei der imperativen Programmierung - nicht mehr hauptsächlich um die technische Realisierung der Eigenschaften und Methoden der Objekte kümmern, denn in Bibliotheken sind Klassen von Objekten gesammelt, aus denen der Programmierer für seine Aufgabe geeignete auswählt oder von diesen neue problemspezifische Objekte ableitet (bei Bedarf kann der Programmierer auch vollkommen neue Objekte erstellen). Die Programmierung reduziert sich dann in erster Linie auf die Auswahl und Konstruktion der passenden Objekte und deren sinnvolle Verbindung. Zugespitzt formuliert fragt man bei der objektorientierten Programmierung, was für Objekte welche Aufgaben erledigen sollen, und nicht, wie die einzelnen Komponenten ihre Aufträge ausführen.
 
Beispielsweise würde der Programmierer eines objektorientierten Windows-Grafikprogramms aus einer Objektbibliothek das Objekt »Menüleiste« wählen und um eigene Einträge ergänzen oder das Objekt »Maus« übernehmen und diesem neue Befehle zur Bildmanipulation hinzufügen. Er braucht sich dann nicht darum zu kümmern, auf welche Weise - im zweiten Fall - die Maus Bewegungen und Klicks in Ausgangssignale umsetzt. Er muss nur angeben, was ein bestimmter Mausklick auf ein Grafikobjekt bei diesem bewirkt. Dieser »Black-Box-Charakter« von Objekten ermöglicht es, modular aufgebaute Programme zu erstellen, bei denen sich eine Änderung an einer Stelle nur minimal auf andere Teile auswirkt. Neben dieser für die Programmentwicklung sehr vorteilhaften Eigenschaft ist die OOP auch kompatibel mit den Software-Konzepten Multithreading und Multitasking.
 
Die objektorientierte Programmierung weist folgende charakteristischen Merkmale auf:
 
- Kapselung: Die Eigenschaften eines Objekts sind im Objekt selbst verborgen. Man kann nur über im Objekt verankerte Methoden auf die Eigenschaften zugreifen und sie eventuell verändern. Einerseits werden dadurch die Objekteigenschaften geschützt, andererseits ist auch die konkrete Umsetzung der Eigenschaften und Methoden für die Außenwelt nicht von Belang.
 
- Vererbung: Aus verschiedenen Klassen können neue Klassen abgeleitet werden, welche die Eigenschaften und Methoden der Elternklassen übernehmen.
 
- Polymorphie: Dieselbe Methode kann auf unterschiedliche Objekte angewendet werden.
 
- Nachrichten: Objekte kommunizieren untereinander durch den Austausch von Nachrichten (Messages).
 
Ein objektorientiert konzipiertes Programm besteht zum einen aus der Beschreibung von Objekten und ihren Eigenschaften und zum Zweiten aus den auf sie anwendbaren Methoden. Erhält ein Objekt während des Programmablaufs eine Nachricht, so führt es daraufhin eine Aktion aus oder sendet selbst eine Nachricht an andere Objekte (oder beides). Der Code eines solchen Programms besteht - ohne die Objektdefinitionen - dann nur noch aus wenigen Schleifen, die sich oft wie »Klartext« lesen lassen:
 
Für Jeden Absatz in Dokument.Absätze
 
Wenn Nicht Absatz.Wörter(1).Text = „Fehler“
 
Dann
 
Setze Absatz.Format = Standard
 
Setze Absatz.Schrift = Times
 
Sonst
 
Absatz.löschen
 
Nächster Absatz
 
Das vorstehende Beispiel ist einer objektorientierten Textverarbeitungsmakrosprache nachempfunden, stellt aber keinen lauffähigen Code dar. Dabei ist Absatz eine Variable, die für alle Absatzobjekte steht, die in der Liste der Absätze des Dokuments enthalten sind. Die Methode Wörter(1) gibt das Objekt »erstes Wort in Absatz« zurück, die Methoden »Text« und »löschen« sind selbst erklärend. »Format« und »Schrift« schließlich sind Eigenschaften des Objekts Absatz, denen mit der Anweisung »Setze« Werte zugewiesen werden.
 
Das Konzept der objektorientierten Programmierung ist eigentlich schon recht alt, es wurde bereits in den 1970er-Jahren am Forschungsinstitut Xerox PARC in Palo Alto (Kalifornien) entwickelt. Allerdings wies auch schon die 1967 eingeführte Programmiersprache Simula wichtige Züge der Objektorientierung auf. 1981 entstand Smalltalk, die erste wirklich objektorientierte Programmiersprache. Der Durchbruch für die OOP kam aber erst Anfang der 1990er-Jahre mit dem Übergang von zeilenorientierten zu fensterorientierten Benutzeroberflächen (hauptsächlich von DOS auf Windows). Die Fensterstruktur ist hervorragend geeignet für die objektorientierte Software-Entwicklung. Heute unterscheidet man zwischen reinen objektorientierten Programmiersprachen wie Oberon oder Eiffel, die von vornherein für die OOP konzipiert waren, und sog. Hybridsprachen, die aus imperativen Vorläufern hervorgegangen sind. Zu Letzteren zählen etwa C++, neuere Versionen von Pascal sowie Visual Basic.

Universal-Lexikon. 2012.