Definition „Objektorientierte Programmierung“

Was ist OOP?

| Autor / Redakteur: LineFeed / Stephan Augsten

Objektorientierte Programmierung lebt von Klassen, ihren untergeordneten Objekten und der Vererbung ihrer Attribute.
Objektorientierte Programmierung lebt von Klassen, ihren untergeordneten Objekten und der Vererbung ihrer Attribute. (© ribkhan - stock.adobe.com)

Bei der Objektorientierten Programmierung, kurz OOP, werden Daten und Programmcode in übersichtlichen, wiederverwendbaren Modulen – sprich Objekten – gekapselt. Dies reduziert den Programmieraufwand und hilft, Fehler zu vermeiden.

Objektorientierte Programmierung (OOP) bezeichnet ein Programmierparadigma, das heißt ein Grundprinzip, nach dem die Lösung von Aufgaben in einer Programmiersprache erfolgt. Für OOP charakteristisch ist die Kapselung von Daten und Code in Objekten.

Der Zugriff auf die Objekte ist nur über Schnittstellen möglich, die von den Objekten selbst bereitgestellt werden. Diese Abschottung wird durch die jeweilige Programmiersprache im Allgemeinen aber nicht erzwungen, vielmehr steht es dem Entwickler frei, wie er seine Objekte definiert.

Die klassenbasierten objektorientierten Sprachen bieten darüber hinaus die Möglichkeit, die Struktur der Objekte in abstrakter Form vorzudefinieren und sie an Unterklassen zu vererben. Solch ein Klassenkonzept findet sich gerade bei den populärsten Sprachen, die dem Paradigma OOP folgen.

OOP im Kontext gängiger Programmierparadigmen

Objektorientierte Programmiersprachen zählen typisch zu den imperativen und prozeduralen Sprachen. Sie führen das Objekt als neuen Grundbaustein ein, der Daten und zugehörigen Programmcode zu einer Einheit zusammenfasst. Diese Objekte lassen sich in gleicher Weise verwenden, wie die Variablen, Prozeduren und Funktionen ähnlicher, nicht objektorientierter Sprachen.

Die OOP realisiert somit eine Modularisierung und bietet eine höhere Abstraktion als beispielsweise eine rein imperative, prozedurale Programmiersprache. Darüber hinaus besitzt ein Objekt einen Zustand und einen Bezug zu sich selbst. Dieser ist üblicherweise über ein Attribut mit dem Namen "self" oder "this" auswertbar.

Warum OOP – Ideal eines fehlerfreien Programms

Durch die Kapselung der Daten sowie des Codes, der sie verändert oder ausgibt, lassen sich die Objekte unabhängig voneinander und von anderen Programmteilen prüfen und testen. Wenn Variablen nur innerhalb des Objekts, in dem sie als Felder oder Attribute definiert sind, durch die dort als Methoden festgelegten Prozeduren veränderbar sind, können andere Programmteile gar keinen Einfluss auf die Funktion des Objekts haben.

Selbst ein nur lesender Zugriff auf die Daten von außerhalb des Objekts kann voraussetzen, dass die Werte immer den aktuellen, im Objekt gespeicherten Zustand wiedergeben. Dessen Korrektheit kann die OOP dadurch sicherstellen, dass die Eingabedaten bei der Übernahme in das Objekt durch die entsprechenden Methoden geprüft werden. Die korrekte Funktion dieser (im Allgemeinen sehr kurzen) Codesequenzen lässt sich wiederum völlig unabhängig von anderen Programmteilen verifizieren.

Warum OOP – Wiederhol dich nicht!

Wie jede Modularisierung erleichtert die objektorientierte Programmierung die Wiederverwendung von Codeblöcken. Das spart Arbeitszeit, vermeidet aber vor allem Copy-and-Paste Fehler, die leicht beim Kopieren und Anpassen von Programmteilen entstehen.

Die Entwickler von Django, einem Rapid Development Framework für Web-Applikationen (CMS) das in der objektorientierten Skriptsprache Python geschrieben ist, prägten dafür den Slogan „Don't Repeat Yourself“. Dieses Prinzip lässt sich besonders gut mit Hilfe der Vererbung klassenbasierter Sprachen realisieren. Im Gegensatz zum Kopieren von Codeblöcken bleibt bei dieser Art der Wiederverwendung eine bereits verifizierte Korrektheit des Ursprungscodes erhalten.

Die Geschichte der OOP als kurzer Abriss

Eine Begrifflichkeit im Sinn der heutigen Vorstellung von Objektorientierter Programmierung tauchte am MIT bereits um das Jahr 1960, im Rahmen der Erforschung Künstlicher Intelligenz und im Zusammenhang mit der Programmiersprache LISP, auf. Mitte der 1960er-Jahre führte Simula 67 das Klassenkonzept mitsamt Vererbung und weiteren objektorientierten Features ein. Davon beeinflusst entstand um das Jahr 1970 die Sprache Smalltalk am Xerox PARC, die als erste den Begriff OOP konkret verwendete.

OOP als Erweiterung bestehender Programmiersprachen

In den 1990er-Jahren popularisierten objektorientierte Programmiersprachen als Erweiterungen verbreiteter, meist imperativ-prozeduraler Sprachen das Konzept der OOP. Bedeutende Beispiele sind C++ und Java, beide auf C aufbauend.

Dieser Ansatz erleichterte es ihnen, sich als neue Sprache in einem bereits unübersehbaren Umfeld zu positionieren. Die bei einem solchen Konzept mögliche Mischung von OOP und einfacher, imperativ-prozeduraler Programmierung birgt aber das Risiko, die oben genannten Vorteile der Objektorientierung zu verlieren.

Ungewöhnliche OOP-Implementationen

Bereits bestehende Programmiersprachen wurden ebenfalls durch Features erweitert, die eine OOP ermöglichen. Eine ungewöhnliche, aber zur Sprache passende Umsetzung findet sich in der Skriptsprache Perl. Diese versteckt das Attribut für den Selbstbezug nicht wie andere Programmiersprachen, sondern behandelt sie wie jedes andere Datenfeld. Das ähnelt einer Armbanduhr mit Glasboden, die das Uhrwerk sichtbar lässt.

Dagegen zählt die 1985 vorgestellte Programmiersprache Eiffel nicht nur zu den wenigen Vertretern einer reinen OOP, sondern bietet auch noch mehr als eine Programmiersprache. Sie bezeichnet sich besser als eine Methode der Softwareentwicklung.

Kommentare werden geladen....

Kommentar zu diesem Artikel

Der Kommentar wird durch einen Redakteur geprüft und in Kürze freigeschaltet.

Anonym mitdiskutieren oder einloggen Anmelden

Avatar
Zur Wahrung unserer Interessen speichern wir zusätzlich zu den o.g. Informationen die IP-Adresse. Dies dient ausschließlich dem Zweck, dass Sie als Urheber des Kommentars identifiziert werden können. Rechtliche Grundlage ist die Wahrung berechtigter Interessen gem. Art 6 Abs 1 lit. f) DSGVO.
  1. Avatar
    Avatar
    Bearbeitet von am
    Bearbeitet von am
    1. Avatar
      Avatar
      Bearbeitet von am
      Bearbeitet von am

Kommentare werden geladen....

Kommentar melden

Melden Sie diesen Kommentar, wenn dieser nicht den Richtlinien entspricht.

Kommentar Freigeben

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Freigabe entfernen

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Aktuelle Beiträge zu diesem Thema

Was ist ein Programmierparadigma?

Definition „Programmierparadigmen“

Was ist ein Programmierparadigma?

Programmierparadigmen sind verschiedene grundlegende Ansätze und Techniken für die Programmierung von Software. Darunter fallen z. B. auch objektorientierte oder funktionale Programmierung. lesen

Was ist Python?

Definition „Python (Programmiersprache)“

Was ist Python?

Die objektorientierte Programmiersprache Python wurde 1991 veröffentlicht und ähnelt PERL. Sie besitzt eine einfache Lesbarkeit und eine eindeutige Syntax. Python lässt sich leicht erlernen und unter UNIX, Linux, Windows und Mac OS verwenden. lesen

Was ist Dependency Injection?

Definition „DI“

Was ist Dependency Injection?

Der Begriff Dependency Injection, kurz DI, steht in direktem Zusammenhang mit der objektorientierten Programmierung. Objekte oder Klassen erhalten die Zuweisung ihrer Abhängigkeiten durch Aufruf spezifischer Methoden von einer externen Instanz. lesen

Was ist Objective-C?

Definition „ObjC (Programmiersprache)“

Was ist Objective-C?

Die Programmiersprache Objective-C ist eine Erweiterung der Programmiersprache C, um diese für die objektorientierte Programmierung zu öffnen. Die 1984 erschienene Erweiterung ist vor allem für Cocoa und GNUstep gebräuchlich und an Smalltalk angelehnt. lesen

Was ist C?

Definition „C (Programmiersprache)“

Was ist C?

Die Programmiersprache C stammt aus den 1970ern, ist aber auch heute noch weit verbreitet: Sie bietet hohe Performance, arbeitet maschinennah und funktioniert mit minimalen Ressourcen auf den unterschiedlichsten Plattformen. lesen

Die Python-Standardbibliothek

Python Tutorial, Teil 9

Die Python-Standardbibliothek

Bevor wir in die objektorientierte Programmierung mit Python einsteigen, sehen wir uns noch einmal die äußerst umfangreiche Python-Standardbibliothek an. Ein paar Module erläutern wir anhand kurzer Beispiele. lesen

Was ist strukturierte Programmierung?

Definition „Structured Programming“

Was ist strukturierte Programmierung?

Das Programmierparadigma der strukturierten Programmierung zielt auf verständlichen Code ab. Dies wird beispielsweise dadurch erreicht, dass auf Sprunganweisungen und andere intransparente Bedingungen sowie Abfragen verzichtet wird. lesen

Angular und AngularJS

JavaScript-Fundamente für Single Page Apps, Teil 3

Angular und AngularJS

Angular ist von der Philosophie her ein vollständiges Framework und bietet Lösungen für nahezu sämtliche Aufgaben eines Frontent-Entwicklers. So kümmert sich die Open-Source-Software um Dinge wie die Validierung oder die Kommunikation mit dem Backend. lesen

Objektorientierte Programmierung mit C

Softwaretechnik

Objektorientierte Programmierung mit C

Obwohl C keine objektorientierte Sprache ist, ist die objektorientierte Programmierung mit ihr möglich. Dieser Artikel beschäftigt sich mit der Umsetzung von UML-Elementen aus dem Klassendiagramm in C-Code. Es wird gezeigt, was möglich ist und wo die Umsetzung mit der Programmiersprache C an ihre Grenzen stößt. lesen

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Kontaktieren Sie uns über: support.vogel.de/ (ID: 45091599 / Definitionen)