wer ist, was ist, wo ist, wann war, was war - Lexikon / Chronik / Biografie / Wissen - Objektorientierte Programmierung


Werbung

Produkte / Services :|: Chronik CD :|: als Startseite | zu den | empfehlen :|: Impressum
Lexika @ InfoBitte.de :|: Universal-Lexikon | WeltKunst | Geteiltes Deutschland | Zweiter Weltkrieg
WeltChronik.de :|: Welt | Deutschland | Kultur/Kunst/Technik :|: BildDatenBank :|: Biografien

Navigation

WeltChronik
Deutsche Chronik
KulturChronik
Biografien
Bilddatenbank
Kalenderblatt
Epochen
Lexika @ InfoBitte.de
Produkte

Suchfunktionen
Chronik-Jahr direkt

Nur Zahl eingeben
Bereich: '0'-'2001'
PARTNER
Ahnenforschung

Quellen für die Schule

FREE 4 WebMasters

Wir haben eine ganze Palette kostenloser Angebote von uns
für WebMaster und HomePage Besitzer aufbereitet

Holen Sie sich hier ab

was Sie gerne einsetzen würden
Suchfunktionen, Kalenderblatt, uam
für Ihre WebSite



Objektorientierte Programmierung

ein InfoBitte / WeltChronik
Sach-Artikel (Enzyklopädie / Lexikon)

Entwickelt von ICA-D aus der XML-Version der deutschen WikiPedia
© 2004/2005 ff by de.wikipedia.org, teilw. by ICA-D
blättern» voriger Artikel | Hauptseite | nächster Artikel «blättern

Objektorientierte Programmierung (OOP) ist eine Methode zur Strukturierung von Computerprogrammen, bei der die Daten und die Programmlogik zur Be- und Verarbeitung dieser Daten als Einheit behandelt werden. Diese Einheiten werden Objekte genannt, die abstrakten Datentypen der Einheiten ("Sorten von Objekten") werden als Klassen bezeichnet.


Inhaltsverzeichnis


1 Eigenschaften der objektorientierten Programmierung

2 Welche Sprachen erlauben objektorientierte Programmierung?

3 Bezeichnungen

4 Geschichte der objektorientierten Programmierung

5 Umfeld

6 Andere Programmiertechniken

7 Literatur

8 Siehe auch


Eigenschaften der objektorientierten Programmierung

Es existieren leicht abweichende Definitionen der Merkmale, die eine Programmiermethode oder eine Programmiersprache aufweisen muss, um als "objektorientiert" zu gelten. Üblicherweise zählen dazu folgende Eigenschaften:


  • Abstraktion: Jedes Objekt im System kann als ein abstraktes Modell eines "Arbeiters" betrachtet werden, der Aufträge erledigen kann, seinen Zustand berichten und ändern kann und mit den anderen Objekten im System kommunizieren kann, ohne offen legen zu müssen, wie diese Fähigkeiten implementiert sind (vgl. ADT).
  • Kapselung: Auch das "Verbergen von Information" genannt, sorgt dafür, dass Objekte den internen Zustand anderer Objekte nicht in unerwarteter Weise lesen oder ändern können; nur den eigenen Methoden eines Objektes soll es erlaubt sein, auf den internen Zustand direkt zuzugreifen. Alle Klassen präsentieren nach außen Schnittstellen, die darüber bestimmen, wie andere Objekte mit ihnen interagieren können.
    Einige Programmiersprachen handhaben das nicht ganz so streng und erlauben einen gewissen kontrollierten Direktzugang zu den Interna von Objekten, der durch nicht zur Klasse gehörende Funktionen stattfindet. Ein Beispiel dafür sind friend-Funktionen in C++. Auch eine friend-Funktion verletzt jedoch nicht das Prinzip der Kapselung, da sich die Funktion den Zugang nicht selbst verschaffen kann.
  • Polymorphie: Verschiedene Klassen können auf die gleiche Nachricht unterschiedlich reagieren. Dabei spricht man von Polymorphie.
    Wird die Zuordnung von Nachricht zur Reaktion auf 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 Objekte definiert und erzeugt werden können, die Spezialisierungen schon existierender Objekte sind. Solche neuen Objekte können das vorhandene Verhalten übernehmen und erweitern, ohne dass dieses Urverhalten neu implementiert werden muss. Typischerweise wird das dadurch erreicht, dass Objekte zu Klassen und zu Hierarchien von Klassen gruppiert werden, in denen sich die Gemeinsamkeiten im Verhalten ausdrücken.


Bei einem System, das keine Vererbung kennt, spricht man zur Unterscheidung oft von objektbasierter Programmierung.


Welche Sprachen erlauben objektorientierte Programmierung?

Prinzipiell kann man durch strikte Einhaltung gewisser Regeln in jeder Programmiersprache objektorientiert programmieren, jedoch erleichtern und fördern objektorientierte Programmiersprachen dies ungemein.


In der OOP wird ein Programm als Population miteinander kommunizierender und kooperierender Objekte formuliert.


Das ist ein Unterschied zu herkömmlichen prozeduralen Programmiersprachen (siehe objektorientiert/prozedural), bei denen Daten und Prozeduren typischerweise getrennt betrachtet werden.


OOP soll Programmierung und Wartung von Programmen und Modulen 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 erzeugen (über Klassendefinitionen) 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.


Die erste bekannte und auch heute noch gebräuchliche objektorientierte Programmiersprache ist Smalltalk, ein prominenter Vertreter war Turbo Pascal (ab Version 5.5), die heute bekanntesten sind C++, Java und C#.


Bezeichnungen

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


  • Basisklasse = Superklasse = Oberklasse
  • abgeleitete Klasse = Subklasse = Unterklasse
  • Elementfunktion = Methode
  • Datenelement = Attribut, Instanzvariable


Geschichte der objektorientierten Programmierung

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


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


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


Seit dieser Zeit wurden für viele existierende Programmiersprachen objektorientierte Erweiterungen geschaffen, z.B. für Ada, BASIC, LISP, Pascal und andere.


Das Hinzufügen dieser Erweiterungen zu Sprachen, die ursprünglich nicht für OOP entworfen wurden, kann zu Problemen mit der Kompatibilität und Wartbarkeit von Code führen. "Rein" objektorientierten Sprachen wiederum fehlen gewisse prozedurale Programmiermöglichkeiten, an die sich viele Programmierer inzwischen gewöhnt hatten.


Um diese Lücke zu schließen, wurden verschiedene Versuche unternommen, neue objektorientierte Sprachen zu schaffen, die gleichzeitig "sichere" prozedurale Programmierung erlauben.


Die Programmiersprache Eiffel war einer der ersten einigermaßen erfolgreichen Versuche in dieser Richtung, wurde inzwischen aber praktisch von Java verdrängt - hauptsächlich durch die Ausbreitung des Internets, für das Java speziell geeignet ist. Einen ähnlichen Ansatz verfolgt die an Java und C++ angelehnte Sprache C#.


Umfeld

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


Andere Programmiertechniken

Andere Programmierparadigmen (die sich zum Teil mit OOP und 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 Vlissides: Design Patterns: Elements of Reusable Object Oriented Software, Addison-Wesley, ISBN_0201633612
  • Bertrand Meyer: Object-Oriented Software Construction, Prentice Hall, ISBN_0136291554
  • James Rumbaugh, Michael Blaha, William Premerlani, Frederick Eddy, 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 Award-Winning 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
  • Bernd Oestereich: Objektorientierte Programmierung mit der Unified Modeling Language, Oldenbourg, ISBN_3-486-24319-5


Siehe auch



blättern» voriger Artikel | Hauptseite | nächster Artikel «blättern

Dieser Beitrag ist aus der XML-Version der deutschen WikiPedia® entwickelt worden und unterliegt inhaltlich den GNU FDL-Lizenzbestimmungen. Linkziele außerhalb der wikipedia-Inhalte unterliegen den Urheberrechten der jeweiligen Anbieter




Wörterbuch


Produkte
2000 Jahre
Chronik CD-ROM


Kalenderblatt in
Schmuckblatt
Ausführung


Geburtstags-Bios

Suchen/Google-Ads
Kalenderblatt
druckfertig
( DirectDownloads )
Kalenderblätter
druckfertig aufbereitet für Schmuckblätter
zum Selbstdrucken

im Word DOC6/RTF Format, je Euro 5
über Click&Buy
JAN | FEB | MÄRZ
APRIL | MAI | JUNI
JULI | AUG | SEPT
OKT | NOV | DEZ

Das Geschenk für jeden Anlass, nicht nur bei 'runden' Jubiläen
Andere Einzeltage
oder Zahlungsarten

bitte HIER bestellen


© 2000 ff by ICA-D, D-76751 Jockgrim, Germany
Verantwortlich im Sinne des Presse- und Multimedia-Rechts: Dipl.-Ing. Rainer Detering, Waidweg 18, 76189 Karlsruhe


| Immer | Unsere | InfoBitte weiterempfehlen
KALENDERBLATT von HEUTE | SUCH-Funktionen ALLE und nach BEREICHEN | Startseite
Welt-Chronik | Kunst-, Kultur-, Technik-Geschichte | Deutsche Chronik | 2000 Biografien | Bild-Datenbank
Gesetzestexte | SkateGuide | Online Jigsaw Puzzles | GeschenkTip | Produkte, Services, Impressum



*NEU* bei InfoBitte *NEU*



die deutsche WikiPedia
bei InfoBitte.de mit
650,000 Querverweisen zu
2000 Jahre Chronik



InfoBitte
Portal zu Portalen
Hauptseite


Suchfunktionen

Wissen, Biografien, Geschichte
besser gezielt suchen mit
domain-Filterung

die Links führen im neuen Fenster
zu den jeweiligen Hauptseiten,
das Anklicken eines Buttons zur
Filterung für die Google-Suche



Google
Lexika @ InfoBitte.de

ib InfoBitte.de (alle Lexika)
ib Universal-/Hand-Lexikon
die WikiPedia @ InfoBitte
ib L. WeltKunstGeschichte
ib L. Geteiltes Deutschland
ib L. Zweiter Weltkrieg

2000 Jahre Chronik

WeltChronik.de (Texte)
  
WeltChronik auf CDROM
deutsche Geschichte
Kultur-/TechnikGeschichte
WeltChronik Bilder
Chronik Biografien

Google
2000 Jahre Chronik
offline auf CDROM

Hier Kaufen


WeltChronik Jahr...
(eigene Suchfunktion)

Nur Zahl eingeben
Bereich: '0'-'2001'





Diese Web Site verdient ihr Geld durch Produktverkäufe (CD-ROM, downloads) und in erster Linie durch Anzeigen. Wenn Sie als Webmaster zuverlässige Partner suchen für Ihr eigenes Anzeigenschäft, dürfen Sie sich gerne auf unsere Empfehlungen stützen:
z.B.: GigaCash & ProfiWin