Objektorientierte Programmierung
Objektorientierte Programmierung (OOP) ist eine Methode für das Entwerfen von Software, bei der "Klassen von Objekten" eine entscheidende Rolle spielen. Dabei sind diese Objekte Softwarebestandteile, in denen Zustände (soll heißen: Daten) und Verhaltensweisen (soll heißen: Prozeduren bzw. Methoden) zu einer organisch funktionierenden Einheit zusammengefasst sind. In der OOP wird ein Programm als Population solcher Objekte ausgedrückt, die alle miteinander kommunizieren und kooperieren, um die Programmieraufgaben zu lösen. Das ist ein Unterschied zu herkömmlichen prozeduralen Programmiersprachen, bei denen Daten und Prozeduren typischerweise getrennt betrachtet werden. OOP verfolgt das Ziel, das Schreiben von Programmen und Moduln sowie ihre Wartung und Nachnutzung zu erleichtern.
Häufig wird dieser Sachverhalt auch so ausgedrückt, dass die OOP den Programmierer dazu anhält, sich in seinem Programm an erster Stelle um die Daten zu kümmern, und in einem zweiten Schritt um die Operationen ("Methoden"), die er für diese spezifischen Daten braucht. Bei prozeduralen Sprachen denkt der Programmierer zuerst über die Prozeduren nach, und dann erst über die Daten, die von den Prozeduren bearbeitet werden. Prozedurale Programmierer schreiben Funktionen und übergeben ihnen dann Daten. Objektorientierte Programmierer definieren Objekte mit Daten ("Attributen") und Methoden und lassen dann Nachrichten an diese Objekte schicken, die dafür sorgen, dass die so angesprochenen Methoden ausgeführt werden.
Objektbasierte Programmierung ist (im Unterschied zur objektorientierten Programmierung) dadurch gekennzeichnet, dass zwar mit Objekten hantiert wird, nicht aber mit Klassen.
Es gibt eine gewisse Uneinigkeit darüber, was alles genau diejenigen Kennzeichen einer Programmiermethode oder einer Programmiersprache sind, die sie schließlich als "objektorientiert" qualifizieren, aber gleichzeitig gibt es weitgehend Übereinstimmung darüber, dass die nachfolgend aufgezählten Eigenschaften besonders wichtig sind:
- Abstraktion:...
- Kapselung:...
- Polymorphie:...
- Vererbung:...
Denkweise und Begriffe der OOP zeigten sich zuerst in Simula 67, einer Sprache für Simulationszwecke, die von Ole-Johan Dahl und Kristen Nygaard am Norwegian Computing Centre in Oslo geschaffen wurde. (Erzählt wird, dass sie an Schiffssimulationen gearbeitet hatten. Dabei ergab sich durch die kombinatorische Explosion von Parameterbeziehungen eine verwirrende Vielfalt an Möglichkeiten, wie sich die verschiedensten Attribute der unterschiedlichen Schiffe gegenseitig beeinflussen konnten. So kam die Idee auf, die unterschiedlichen Schiffstypen als Objekte zu klassifizieren, wobei jede Klasse von Objekten für die eigenen Daten und das eigene Verhalten selbst zuständig war.)