WikiDer > Objektorientiert
Objektorientierten, oft abgekürzt mit OO als Abkürzung für Englisch objektorientierten, ist ein Paradigma die in der verwendet wird Objekt orientierte Programmierung und der objektorientierte Speicherung von Terminen. Bei diesem Ansatz ist a System besteht aus Objekte.
Vereinfacht gesagt besteht ein Objekt aus bestimmten Daten und der Software, mit der diese Daten verarbeitet werden. Auf diese Daten kann vorzugsweise nur über die zugehörige Software zugegriffen werden. Beispielsweise kann eine Datei als Objekt definiert werden, wobei der Benutzer des Objekts nur Lese- und Schreibbefehle geben kann und interne Daten wie das "Handle" der Datei ausgeblendet werden. Charakteristisch für Objekte ist auch, dass sie sich hierarchisch aufeinander beziehen können: Eine Eingabedatei ist beispielsweise a nett Datei.
Pure Technical bietet objektorientierte Programmierung nicht die Fähigkeit, eine neue Art von Anwendungen zu implementieren. Es dient lediglich der besseren Strukturierung von Programmen im Hinblick auf Übersichtlichkeit, Wartbarkeit und Wiederverwendbarkeit von Komponenten. Als solches ist das objektorientierte Paradigma ein Nachfolger von strukturierte Programmierung. Strukturierte Programmierung hat vielen kleinen und mittleren Softwareprojekten zum Erfolg verholfen, erwies sich jedoch bei den großen Projekten, die Ende der 1980er Jahre häufiger wurden, als weniger erfolgreich.[1]
Das objektorientierte Paradigma begann zu Beginn des die 90er. Viele Sprachen unterstützen heute die objektorientierte Programmierung.
Wichtige Features in der objektorientierten Programmierung sind:
- Informationen ausblenden: In der Lage sein, das Innenleben von Objekten zu verbergen, wodurch Modularität durchsetzbar wird.
- Modularität: Programme bestehen aus Komponenten, die unabhängig voneinander modifiziert werden können, solange ihre Schnittstelle kann gleich bleiben; Dies erleichtert die Wiederverwendung und Erweiterung von Software.
- Erbe: die Definition von a Klasse als Erweiterung oder Modifikation einer anderen Klasse.
- Polymorphismus: Beim Aufruf einer Funktion können Sie aus verschiedenen Implementierungen wählen, oft erst während der Programmausführung.
Die ersten beiden Funktionen sind nicht objektorientiert, sondern werden auch in modularen Programmiersprachen wie Modula, Ada und CLU verwendet. Die Besonderheiten von Vererbung und Polymorphie sind gleichzeitig am umstrittensten.
Geschichte
Das objektorientierte Programmierparadigma wurde erstmals in der Programmiersprache verwendet Simula von Ole-Johan Dahl und Kristen Nygaard in den 60er Jahren des 20. Jahrhunderts. Diese Sprache war eine Erweiterung der Imperativ Sprache algol mit objektorientierten Elementen.
Eine zweite, viel radikalere objektorientierte Sprache ist Smalltalk, entwickelt in den 1970er Jahren bei XeroxPARC. Smalltalk ist viel beliebter geworden als Simula, vor allem für Prototyp entwickeln; die Sprache ist weniger geeignet für die Entwicklung von Produktionssoftware.
Die objektorientierte Programmierung gewann um 1986 an Bedeutung, wie das große Interesse an zwei Konferenzen zeigt: der objektorientierte Programmierworkshop von IBM und der 1. Internationale Konferenz für objektorientierte Programmiersprachen, Systeme und Anwendungen (OOPSLA) te Portland, Oregon. Es gab mehrere Gründe für dieses plötzliche Interesse, aber der Hauptgrund war das Aufkommen von Arbeitsplätze. Das grafische Benutzeroberfläche von Workstations stellt den Programmierer vor spezifische Probleme, auf die die objektorientierte Programmierung eine Antwort bietet.[2]
Die erste objektorientierte Sprache, die unter professionellen Softwareentwicklern weit verbreitet war, war C , heute eine der am weitesten verbreiteten Programmiersprachen. Neben C wurden in den 1980er Jahren Objekt Pascal, Ziel c und andere häufig verwendete objektorientierte Sprachen. Die Prinzipien fanden in der Entwicklungspraxis breite Akzeptanz.
Von den neueren objektorientierten Sprachen die am häufigsten verwendete Java (bekannt ab 1995) und C# (Stand 2001).
Konzept
In objektorientierten Sprachen, die strikte verwenden tippen Objekte werden als Elemente ("Instanzen") von a . modelliert Klasse.
Eine Klasse ist eine Blaupause für Objekte. Eine Klasse definiert:
- Attribute um die Eigenschaften und den Zustand von Objekten aufzuzeichnen;
- Methoden: Funktionen um diesen Zustand zu lesen oder zu modifizieren, wobei jedes dem Objekt zuzuschreibende Verhalten angegeben wird; Berechnungen, Operationen, Aktionen, Antworten usw.
Mit einem besonderen KonstrukteurFunktion kann zu Objekten werden instantiiert. Jedes Objekt hat seine eigenen Werte von Eigenschaften und Zustand.
Diese Herangehensweise fühlt sich natürlich an, weil wir uns die Welt ähnlich denken. Zum Beispiel können wir uns den Tisch, an dem Sie sitzen, als einen Objekt des Klasse Tabelle;eine spezifische Kreis in dem Geometrie als Objekt des Klassenkreises.
Wenn wir in einem Programm eine Tabelle oder einen Kreis benötigen, können wir sie als Klassen definieren.Attribute definieren beispielsweise die Position der Tabelle oder des Kreises; Methoden können beispielsweise das Objekt verschieben oder feststellen, ob sich ein bestimmtes anderes Objekt darauf befindet.
Vererbung und Polymorphismus
Eines der leistungsstarken Tools von OO ist die Fähigkeit, hierarchische Einteilung. Eine Oberklasse der obersten Ebene kann in untergeordnete Klassen in mehrere Ebenen aufgeteilt werden. Außerdem "erbt" jede Klasse auf der unteren Ebene die Attribute und Methoden der Klassen auf der Ebene über der Klasse. Wir nennen diesen Mechanismus Erbe (Erbe).
Vererbung erlaubt auch Varianten Klassen zu machen. Wir sprechen dann von grundlegenden und spezifischeren Klassen. In einigen Situationen kann die Basisklasse angeben, welche Operationen für ein Objekt möglich sind, während eine bestimmte Klasse eine bestimmte Implementierung der Operation angibt. Zum Beispiel eine Basisklasse Zahl mit Methoden wie "Höhe, Breite, Spiegel und Wende. Daraus lassen sich konkrete Umsetzungen ableiten, wie z Kreis und Quadrat, die ganz anders funktionieren können (Spiegel und Wende zum Beispiel für einen Kreis nichts tun müssen), während Code mit a Zahl braucht nichts davon zu wissen. Dieses Konzept wird Polymorphismus erwähnt.
Kapselung von Daten (Encapsulation)
Objekte bilden die Verbindung zwischen Daten einerseits und Operationen, die an diesen Daten andererseits durchgeführt werden. Wir sprechen von kapseln oder Verkapselung wenn andere Programmeinheiten nicht direkt auf die Daten zugreifen, sondern über die Zwischenschicht einer Operation darauf zugreifen. Programmierer, die ein Objekt verwenden, müssen sich nur der Schnittstelle dieses Objekts bewusst sein, während die Implementierung nur Sache der Programmierer ist, die das Objekt entwickeln.[3]
In klassenbasierten Sprachen bedeutet Kapselung, dass der Programmierer, der ein Objekt einer Klasse verwendet, nicht über das Innenleben dieser Klasse nachdenken muss. Eine Kreisklasse kann beispielsweise sein Attribut "Durchmesser"nicht öffentlich machen, sondern die anderen Methoden um die Oberfläche anzufordern oder den Durchmesser zu ändern. Die Kreisklasse könnte dann leicht modifiziert werden, um den Radius statt des Durchmessers intern zu speichern, ohne dass der Benutzer der Kreisklasse dies wissen müsste: Schließlich hat sich der öffentliche Zugriff auf die Klasse nicht geändert.
Programmiersprachen
- C-ähnliche Syntax
- Pascal-ähnliche Syntax
- Oberon (Niklaus Wirth)
- Objekt Pascal (Borland , Embarcadero)
- Sonstiges
- CODESYS
- Objektorientierte Skriptsprachen
Objektorientierte Benutzeroberfläche
Eine ganz andere Art von Objektorientierung findet sich in der objektorientierten Benutzeroberfläche. Dies ist eine Form von a grafische Benutzeroberfläche wobei der Schwerpunkt nicht auf den Programmen liegt, mit denen Aufgaben ausgeführt werden, sondern auf den Dokumenten oder Dateien, mit denen man arbeitet. 's Arbeitsplatz-Shell OS/2 ist ein Beispiel für eine solche Schnittstelle.
Siehe auch
Quellen, Anmerkungen und/oder Verweise
|