Objektorientierte Programmierung

Die objektorientierte Programmierung (OOP) ist eine Methode zur Modularisierung von Programmen, die sich stark von der klassischen prozeduralen Programmierung unterscheidet. Objektorientierte Software ist, wenn sie gut entworfen wurde, leichter zu warten und zu erweitern als prozedurale. Zudem vereinfacht sie durch die strenge Modularisierung Unit-Tests und Wiederverwendung von Softwareteilen. Sie folgt dem Programmierparadigma der imperativen Programmierung.

Bei der objektorientierten Programmierung werden Programme in Einheiten unterteilt, die Objekte genannt werden. Jedes Objekt besitzt einen Zustand, der durch dessen Eigenschaften (Objektattribute) beschrieben wird. Nur die im Objekt selbst vorhandenen Funktionen (Methoden genannt), können dessen Daten manipulieren und so den Zustand verändern. Objekte können anderen Objekten Botschaften senden (indem sie deren Methoden aufrufen) und sie damit auffordern, ihren Zustand zu ändern. Letztendlich bleibt es aber dem Objekt selbst überlassen, ob es der Aufforderung nachkommt. Somit befindet sich das Objekt immer in einem wohldefinierten, selbstkontrollierten Zustand.

Man fasst in der OOP-Programmierung also Daten und Funktionen zu Objekten zusammen. Diese Objekte können auf vielfältige Weise miteinander in Verbindung stehen, indem sie gegenseitig ihre Methoden aufrufen oder ein Objekt andere Objekte enthält. So bilden die Objekte einer Software ein sehr flexibles Gesamtsystem.

Die Klassenzuordnung von Objekten

Zusammenfassung von Daten und Funktionen in der objektorientierten Programmierung (OOP)

Zusammenfassung von Daten und Funktionen in der objektorientierten Programmierung (OOP)

Jedes Objekt gehört zu einer Klasse. Klassen werden auch oft als Baupläne für Objekte beschrieben, weil sie definieren welche Attribute und Methoden die dazugehörigen Objekte besitzen. Jedes Objekt ist eine Instanz seiner Klasse, man sagt auch: Das Objekt "o" instanziiert die Klasse "k". Von einer Klasse kann es beliebig viele Objekte geben, deren Eigenschaften sich unterscheiden können aber nicht müssen. Ein Warenwirtschaftssystem beispielsweise kennt nur eine Klasse Artikel, aber viele Artikelobjekte

Klassen und Objekte der objektorientierten Programmierung (OOP)

Klassen und Objekte der objektorientierten Programmierung (OOP)

Objektorientierte Programme erfüllen verschiedene wichtige Kriterien, die die Entwicklung vereinfachen, beschleunigen und gleichzeitig die Qualität verbessern können:

  • Datenkapselung: Die Daten eines Objekts können nicht unkontrolliert von außen verändert werden, letztendlich entscheidet immer das Objekt selbst über Änderungen seines Zustands.
  • Austauschbarkeit: Objekte sind Abstraktionen realer Entitäten und Akteure, die ihre tatsächliche Implementierung vor der Außenwelt verbergen und dadurch austauschbar werden.
  • Vererbung: Eigenschaften und Funktionen eines Objekts können an andere Objekte weitergegeben und von diesen übernommen, verändert oder überschrieben werden.
  • Polymorphie unterstützt die Austauschbarkeit von Objekten, denn die gleiche Nachricht kann an unterschiedliche Objekte gesendet werden und dementsprechend unterschiedliche Aktionen bei diesen bewirken.

Programmiersprachen für objektorientierte Programmierung

Nicht jede Programmiersprache unterstützt die objektorientierte Programmierung. C und Pascal sind beispielsweise rein prozedural. Andere Sprachen wie C++ oder Object Pascal erlauben OOP, erzwingen sie aber nicht. Die daraus resultierenden Programme können eine Mischung aus verschiedenen Paradigmen sein. Das gleiche gilt für Sprachen wie Hypertext Preprocessor (PHP) oder Perl, die durch Erweiterungen OOP-fähig gemacht werden können. Weitere wie Eiffel, Smalltalk, Java oder C# sind rein objektorientiert.

Neben der eigentlichen objektorientierten Programmierung haben sich auch objektorientierte Verfahren zur objektorientierten Analyse (OOA) und zum objektorientierten Design (OOD) von Softwaresystemen etabliert. Dabei hat sich die Unified Modelling Language (UML) als allgemein anerkannte Notation für diese Verfahren durchgesetzt. Entsprechende Softwaretools, die teilweise in Entwicklungsumgebungen (IDEs) integriert werden, erlauben die Generierung von Software aus grafisch entworfenen Systemen oder dokumentieren umgekehrt fertige Systeme in UML-Notation.

Ein in der Praxis immer wiederkehrendes Problem mit vielen Lösungsansätzen ist die Verbindung von relationalen Datenbanken (RDBMS) und objektorientierter Software. Das Object Relational Mapping (ORM) führt eine Umsetzung relationaler Strukturen in Objekte und umgekehrt durch. Alternativ können auch objektrelationale oder objektorientierte Datenbanken benutzt werden, deren Verbreitung allerdings nicht sehr groß ist.

Informationen zum Artikel
Deutsch: Objektorientierte Programmierung
Englisch: object oriented programming - OOP
Veröffentlicht: 28.10.2013
Wörter: 601
Tags: #Entwicklung, Codierung
Links: Abstraktion, Attribut, C++, C-Sharp, Daten
1