Definition: Objektorientierte Programmierung ist ein Programmierparadigma, das Software in Objekte gliedert. Ein Objekt verbindet seinen Zustand mit den Methoden, die diesen Zustand lesen oder verändern.
Grundidee der OOP
Bei der objektorientierten Programmierung werden Programme in Einheiten unterteilt, die Objekte genannt werden. Jedes Objekt besitzt Eigenschaften, auch Attribute genannt, und stellt Methoden bereit. Methoden sind Funktionen, über die andere Teile eines Programms mit dem Objekt kommunizieren.
Die Daten eines Objekts werden dabei nicht beliebig von außen verändert. Das Objekt kontrolliert selbst, wie sich sein Zustand ändert. Dadurch entstehen klar abgegrenzte Module, die sich leichter testen, warten und in anderen Zusammenhängen wiederverwenden lassen.
Klassen und Objekte
Eine Klasse beschreibt den Aufbau und das Verhalten einer Gruppe von Objekten. Sie kann als Bauplan verstanden werden: Sie legt fest, welche Attribute und Methoden eine Instanz besitzt. Ein konkretes Objekt ist eine Instanz dieser Klasse.
Wichtige Merkmale
- Datenkapselung: Intern gespeicherte Daten werden über kontrollierte Methoden geschützt.
- Abstraktion: Wesentliche Eigenschaften werden sichtbar gemacht, während Implementierungsdetails verborgen bleiben.
- Vererbung: Eine Klasse kann Eigenschaften und Verhalten einer anderen Klasse übernehmen und gezielt erweitern.
- Polymorphie: Gleiche Methodenaufrufe können bei unterschiedlichen Objekten jeweils passende Implementierungen auslösen.
Programmiersprachen und Verfahren
OOP kann vollständig oder als Teil eines gemischten Programmiermodells unterstützt werden. Beispiele sind C++, Java, C#, PHP und Smalltalk. Auch bei der objektorientierten Analyse und beim objektorientierten Design werden Modelle erstellt, häufig mit der Unified Modelling Language.
Ein wiederkehrendes Thema ist die Verbindung objektorientierter Anwendungen mit relationalen Datenbanken. Beim Object-Relational-Mapping werden Tabellenstrukturen und Objekte mithilfe definierter Abbildungen miteinander verbunden.