Studium, Ausbildung und Beruf

web uni-protokolle.de
 powered by
NachrichtenLexikonProtokolleBücherForenDienstag, 31. Mai 2016 

Objektorientierte Programmierung


Dieser Artikel von Wikipedia ist u.U. veraltet. Die neue Version gibt es hier.
Objektorientierte Programmierung (OOP) ist eine Methode zur Strukturierung von Computerprogrammen bei der die Daten und die Programmlogik zur Be- und dieser Daten als Einheit behandelt werden. Diese werden Objekte genannt die abstrakten Datentypen der Einheiten werden als Klassen bezeichnet.

Inhaltsverzeichnis

Eigenschaften der objektorientierten Programmierung

Es existieren leicht abweichende Definitionen der die eine Programmiermethode oder eine Programmiersprache aufweisen um als "objektorientiert" zu gelten. Üblicherweise zählen folgende Eigenschaften:
  • Abstraktion : Jedes Objekt im System kann als abstraktes Modell eines " Arbeiters " betrachtet werden der Aufträge erledigen kann Zustand berichten und ändern kann und mit anderen Objekten im System kommunizieren kann ohne legen zu müssen wie diese Fähigkeiten implementiert (vgl. ADT ).
  • Kapselung : Auch das "Verbergen von Information" genannt dafür dass Objekte den internen Zustand anderer nicht in unerwarteter Weise ändern können; nur eigenen Methoden eines Objektes soll es erlaubt sein den internen Zustand direkt zuzugreifen. Alle Sorten Objekten präsentieren nach außen Schnittstellen die darüber bestimmen wie andere Objekte ihnen interagieren können.
    Einige Programmiersprachen handhaben das nicht ganz streng und erlauben einen gewissen kontrollierten Direktzugang zu den Interna von Objekten der nicht zur Klasse gehörende Funktionen stattfindet. Ein dafür sind friend -Funktionen in C++. Auch eine friend -Funktion verletzt jedoch nicht das Prinzip der Kapselung da sich die Funktion den Zugang selbst verschaffen kann.
  • Polymorphie : Verschiedene Klassen können auf die gleiche unterschiedlich reagieren. Dabei spricht man von Polymorphie.
    Wird die Zuordnung von Nachricht zur Reaktion die Nachricht erst zur Laufzeit aufgelöst dann wird dies auch späte Bindung oder dynamische Bindung genannt.
  • Vererbung : Organisiert und erleichtert Polymorphie indem neue definiert und erzeugt werden können die Spezialisierungen existierender Objekte sind. Solche neuen Objekte können vorhandene Verhalten übernehmen und erweitern ohne dass Urverhalten neu implementiert werden muss. Typischerweise wird dadurch erreicht dass Objekte zu Klassen und zu Hierarchien von Klassen gruppiert in denen sich die Gemeinsamkeiten im Verhalten

Bei einem System das keine Vererbung spricht man zur Unterscheidung oft von objektbasierter

Welche Sprachen erlauben objektorientierte Programmierung?

Prinzipiell kann man durch strikte Einhaltung Regeln in jeder Programmiersprache objektorientiert programmieren jedoch und fördern objektorientierte Programmiersprachen dies ungemein. In der OOP wird Programm als Population miteinander kommunizierender und kooperierender formuliert. Das ist ein Unterschied zu herkömmlichen prozeduralen Programmiersprachen ( siehe objektorientiert/prozedural ) bei denen Daten und Prozeduren typischerweise betrachtet werden. OOP soll Programmierung und Wartung Programmen und Modulen erleichtern.

Häufig wird dieser Sachverhalt auch so dass die OOP den Programmierer dazu anhält sich in seinem Programm an erster Stelle um die Daten kümmern und in einem zweiten Schritt um Operationen ("Methoden") die er für diese spezifischen Daten braucht.

Bei prozeduralen Sprachen denkt der Programmierer über die Prozeduren nach und dann erst über die Daten die von den Prozeduren bearbeitet werden. Programmierer schreiben Funktionen und übergeben ihnen dann Daten. Objektorientierte Programmierer erzeugen (über Klassendefinitionen) Objekte mit Daten Attributen ") und Methoden und lassen dann Nachrichten an diese Objekte schicken die dafür dass die so angesprochenen Methoden ausgeführt werden.

Bezeichnungen

Die Begriffe der objektorientierten Programmierung haben den verschiedenen Programmiersprachen teilweise unterschiedliche Namen. Folgende werden synonym verwendet:

  • Basisklasse = Super klasse
  • abgeleitete Klasse = Sub klasse
  • Elementfunktion = Methode
  • Datenelemente = Attribute

Geschichte der objektorientierten Programmierung

Denkweise und Begriffe der OOP zeigten zuerst in Simula einer Sprache für Simulationszwecke die als Sprache (damals noch nicht so genannte) objektorientierte einführte.

Diese Begriffe und Verfahren wurden später Xerox PARC mit der Sprache Smalltalk verfeinert. Entwickelt wurde diese erste Smalltalk-Version Simula nun als voll dynamisches System bei man Objekte interaktiv erzeugen und ändern konnte im Gegensatz zum vorher verwendeten System statischer

OOP begann Mitte der 1980-er Jahre populärer zu werden hauptsächlich durch Einfluss von C++ das sich dem Programmierer gegenüber gewissermaßen syntaktische Erweiterung der Sprache C ausgibt. Weiter wurde die Stellung der OOP durch die wachsende Beliebtheit der grafischen Bedienoberflächen die sich sehr gut programmieren lassen.

Seit dieser Zeit wurden für viele Programmiersprachen objektorientierte Erweiterungen geschaffen z.B. für Ada LISP Pascal und andere. Das Hinzufügen dieser Erweiterungen Sprachen die ursprünglich nicht für OOP entworfen kann zu Problemen mit der Kompatibilität und Wartbarkeit von Code führen. "Rein" objektorientierten Sprachen wiederum fehlen prozedurale Programmiermöglichkeiten an die sich viele Programmierer inzwischen gewöhnt hatten. Um diese Lücke schließen wurden verschiedene Versuche unternommen neue objektorientierte zu schaffen die gleichzeitig "sichere" prozedurale Programmierung Bertrand Meyers Eiffel war einer der ersten einigermaßen erfolgreichen in dieser Richtung wurde inzwischen aber praktisch Java verdrängt - hauptsächlich durch die Ausbreitung Internets für das Java speziell geeignet ist. ähnlichen Ansatz verfolgt die an Java angelehnte C# .

Umfeld

So wie die Techniken der prozeduralen durch Verfahren wie die strukturierte Programmierung verfeinert wurden so gibt es inzwischen Verfeinerungen der OOP durch Methoden wie Entwurfsmuster (engl. design patterns ) Design by Contract und grafische Modellierungssprachen wie UML . Einen immer wichtigeren Stellenwert nimmt die bzw. Aspektorientierte Programmierung ein bei dem Aspekte von Eigenschaften Abhängigkeiten beschrieben werden. Erste Ansätze sind beispielsweise Java mit J2EE oder der abstrakten Datenhaltung Persistenz-Layer sichtbar.

Andere Programmiertechniken

Andere Programmierparadigmen (die sich zum Teil mit OOP untereinander nicht ausschließen) sind folgende:

Literatur

  • Grady Booch: Object-Oriented Analysis and Design with Applications Addison-Wesley ISBN 0805353402
  • Erich Gamma Richard Helm Ralph Johnson John Design Patterns: Elements of Reusable Object Oriented Addison-Wesley ISBN 0201633612
  • Bertrand Meyer: Object-Oriented Software Construction Prentice Hall ISBN 0136291554
  • James Rumbaugh Michael Blaha William Premerlani Frederick William Lorensen: Object-Oriented Modeling and Design Prentice Hall ISBN 0136298419
  • Ivar Jacobsen: Object-Oriented Software Engineering: A Use Case-Driven Approach Addison-Wesley ISBN 0201544350
  • Harold Abelson Gerald Jay Sussman Julie Sussman: Structure and Interpretation of Computer Programs The MIT Press ISBN 0262011530
  • Paul Harmon William Morrissey: The Object Technology Casebook - Lessons from Business Applications John Wiley & Sons ISBN 0-471-14717-6
  • David A. Taylor: Object-Oriented Information Systems - Planning and Implementation John Wiley & Sons ISBN 0-471-54364-0
  • Peter Eeles Oliver Sims: Building Business Objects John Wiley & Sons ISBN 0-471-19176-0

Siehe auch




Bücher zum Thema Objektorientierte Programmierung

Dieser Artikel von Wikipedia unterliegt der GNU FDL.

ImpressumLesezeichen setzenSeite versendenSeite drucken

HTML-Code zum Verweis auf diese Seite:
<a href="http://www.uni-protokolle.de/Lexikon/Objektorientierte_Programmierung.html">Objektorientierte Programmierung </a>