StudySmarter - Die all-in-one Lernapp.
4.8 • +11k Ratings
Mehr als 5 Millionen Downloads
Free
Americas
Europe
Du kennst Dich gut mit Computern aus und hast vielleicht sogar etwas Programmiererfahrung. Du hast also den Begriff objektorientierte Programmierung schon oft gehört und Dich gefragt, was das genau ist? Die Antwort auf diese Frage findest Du in dieser Erklärung.
Entdecke über 50 Millionen kostenlose Lernmaterialien in unserer App.
Lerne mit deinen Freunden und bleibe auf dem richtigen Kurs mit deinen persönlichen Lernstatistiken
Jetzt kostenlos anmeldenDu kennst Dich gut mit Computern aus und hast vielleicht sogar etwas Programmiererfahrung. Du hast also den Begriff objektorientierte Programmierung schon oft gehört und Dich gefragt, was das genau ist? Die Antwort auf diese Frage findest Du in dieser Erklärung.
Die objektorientierte Programmierung (OOP) ist ein Paradigma der Computerprogrammierung, bei dem das Softwaredesign auf Daten oder Objekten und nicht auf Funktion und Logik basiert.
Diese Programmiermethode eignet sich gut für große, komplexe Programme, die aktualisiert oder aktiv gewartet werden. Dazu gehören:
Beispielsweise kann die objektorientierte Programmierung verwendet werden, um Systemsimulationssoftware zu erstellen.
Der erste Schritt in der objektorientierten Programmierung besteht darin, alle Objekte zu sammeln, mit denen ein Programmierer arbeiten möchte, und festzustellen, wie sie zueinander in Beziehung stehen. Dies ist eine Aufgabe namens Datenmodellierung.
Die Struktur oder Bausteine der objektorientierten Programmierung umfassen:
Was sind die Grundlagen der objektorientierten Programmierung?
Die objektorientierte Programmierung ermöglicht eine natürliche Modellierung, steigert die Entwicklereffizienz durch Wiederverwendbarkeit von Programmelementen und reduziert die Anwendungskomplexität durch Abstraktion und Kapselung.
Objekte legen nur die internen Mechanismen offen, die für die Verwendung durch andere Objekte relevant sind, wodurch unnötiger Implementierungscode verborgen wird. Abgeleitete Klassen können seine Funktionalität erweitern.
Dieses Konzept ermöglicht es Entwicklern, im Laufe der Zeit problemlos zusätzliche Änderungen und Ergänzungen vorzunehmen.
Dieses Prinzip besagt, dass alle wesentlichen Informationen im Objekt enthalten sind und nur ausgewählte Informationen offengelegt werden. Die Implementierung und der Status jedes Objekts werden innerhalb der Klasse, in der es definiert ist, privat gehalten. Kein anderes Objekt hat Zugriff auf diese Klasse oder die Berechtigung, Änderungen daran vorzunehmen. Es kann nur eine Liste öffentlicher Funktionen oder Methoden aufgerufen werden.
Diese Eigenschaft zum Verbergen von Daten erhöht die Programmsicherheit und verhindert versehentliche Datenbeschädigung.
Klassen können Code aus anderen Klassen wiederverwenden. Beziehungen und Unterklassen zwischen Objekten können angegeben werden, sodass Entwickler gemeinsame Logik wiederverwenden und gleichzeitig eine klare Hierarchie beibehalten können. Dieses Merkmal der objektorientierten Programmierung erzwingt eine tiefere Datenanalyse, reduziert die Entwicklungszeit und gewährleistet ein höheres Maß an Genauigkeit.
Objekte sind so konzipiert, dass sie zusammenarbeiten und in vielen Formen vorkommen. Das Programm bestimmt die Bedeutung oder Verwendung, die für jeden Lauf dieses Objekts von der übergeordneten Klasse erforderlich ist, wodurch die Notwendigkeit einer Codeduplizierung reduziert wird. Dann wird eine Unterklasse erstellt, um die Funktionalität der Elternklasse zu erweitern.
Polymorphismus ermöglicht es verschiedenen Arten von Objekten, dieselbe Schnittstelle zu passieren.
In den 1990er-Jahren wurden viele objektorientierte Programmiersprachen entwickelt, um das Programmieren komplexer Anwendungen zu erleichtern. Die objektorientierte Programmierung (OOP) macht Anwendungen robuster, einfacher zu warten und weniger fehleranfällig.
Die objektorientierte Programmierung basiert auf folgenden Prinzipien:
Eine Klasse ist ein abstrakter Oberbegriff für Dinge (Objekte), die eine gemeinsame Struktur oder ein gemeinsames Verhalten haben.
Ein Objekt ist eine Instanz einer Klasse, die zur Laufzeit verfügbar ist, wenn Speicherplatz verfügbar wird. Ein Objekt kann auch als Instanz einer Klasse bezeichnet werden. Wenn eine Instanz einer Klasse erstellt wird, wird dies als Instanziierung bezeichnet. Die Beziehung zwischen Klassen und Instanzen wird als Objektklasse- oder Instanzbeziehung bezeichnet.
Wenn Du Auto als Klasse definierst, dann ist Dein rotes Auto ein Objekt (eine Instanz) der Klasse Auto.
Eine Klasse und damit ihre Instanzen sind durch folgende Eigenschaften gekennzeichnet:
Beispielsweise kann ein Auto Attribute wie Farbe, Marke, Geschwindigkeit usw. haben.
Es gibt Methoden wie Anfahren des Autos, Beschleunigen des Autos, Bremsen, Parken des Autos usw.
Das Fahrzeugbeschleunigungsverfahren erhält Parameter wie: Soll-Ende Geschwindigkeit, zum Beispiel 50 km/h. Eine vernünftige Behauptung für die Geschwindigkeitseigenschaft ist, dass sie ≥ 0 ist.
Die Klasse Auto kann eine (später zu spezifizierende) Beziehung mit der Klasse Fahrzeug haben.
Klassen kombinieren Eigenschaften und Methoden zu einer Einheit. Standardmäßig sind Eigenschaften nur über die Methoden der Klasse zugänglich. Dies wird als eingeschränkter oder gekapselter Zugriff bezeichnet. Eigenschaften und Methoden sind entweder:
Beispielsweise kann der direkte Zugriff auf das Geschwindigkeitsattribut von Objekten der Klasse Car geschützt werden und ist nur über die (öffentlichen) Methoden Accelerate Car und Brake Car möglich.
Ein Objekt kann unabhängig von den spezifischen Werten seiner Attribute eindeutig von anderen Objekten unterschieden werden.
Selbst wenn ein Auto die gleiche Marke und Farbe hat und gleich schnell fährt wie Deins, ist es immer noch ein anderes Auto.
Die Erstellung und Zerstörung eines Objekts einer Klasse erfolgt mit speziellen Methoden, Konstruktoren oder Destruktoren. Sie stellen benötigten oder frei gewordenen Speicherplatz zur Verfügung. Es kann mehrere Konstruktoren geben, z. B. ohne oder mit gleichzeitiger Initialisierung, sie unterscheiden sich nur in Anzahl und Typ ihrer Parameter.
Simula gilt als die erste objektorientierte Programmiersprache, aber viele andere Programmiersprachen werden heute mit OOP verwendet. Einige Programmiersprachen eignen sich jedoch besser für die objektorientierte Programmierung als andere.
Nicht alle Programmiersprachen unterstützen die objektorientierte Programmierung. Beispielsweise ist C++ und Pascal rein prozedural. Sprachen wie C++ oder Object Pascal erlauben OOP, erzwingen es aber nicht. Die resultierenden Programme können eine Mischung verschiedener Modelle sein. Gleiches gilt für Sprachen wie Hypertext Preprocessor (PHP) oder Perl, die durch Erweiterungen mit OOP kompatibel sein können. Andere wie Eiffel, Smalltalk, Java oder C# sind vollständig objektorientiert.
Wie in der imperativen oder funktionalen Programmierung Entwerfen (und damit Modellieren) des eigentlichen Algorithmus (Problem) ist ein wichtiges Thema.
Für das OO-Design gibt es eine Unified Modeling Language (UML):
Mehr zum UML Diagramm findest Du in einer eigenständigen Erklärung auf StudySmarter!
In der folgenden Tabelle kannst Du Dich über die Vorteile von OOP informieren.
Vorteile – OOP | Beschreibung |
Modularität | Durch die Kapselung können Objekte in sich abgeschlossen sein, was das Debuggen und die gemeinsame Entwicklung erleichtert. |
Wiederverwendbarkeit | Code kann durch Vererbung wiederverwendet werden, was bedeutet, dass ein Team denselben Code nicht mehr als einmal schreiben muss. |
Produktivität | Durch die Verwendung von Bibliotheken und wiederverwendbarem Code können Programmierer neue Programme schneller erstellen. |
Leichte Erweiterbarkeit und Skalierbarkeit | Programmierer können Systemfunktionen unabhängig voneinander implementieren. |
Schnittstellenbeschreibungen | Das Schreiben eines externen Systems ist einfach, da Nachrichtenaustauschtechniken verwendet werden, um zwischen Objekten zu kommunizieren. |
Sicherheit | Kapselung und Abstraktion verbergen komplexen Code, erleichtern die Wartung von Software und schützen Internetprotokolle. |
Flexibilität | Polymorphismus ermöglicht es einer einzelnen Funktion, der Klasse zu entsprechen, in der sie platziert ist. Außerdem können verschiedene Objekte dieselbe Schnittstelle passieren. |
Das objektorientierte Programmiermodell wurde von Entwicklern aus vielen Gründen kritisiert. Die größte Sorge ist, dass sich OOP zu sehr auf die Datenkomponente der Softwareentwicklung und nicht genug auf Berechnungen oder Algorithmen konzentriert. Außerdem kann das Schreiben von OOP-Code komplexer sein und das Kompilieren kann länger dauern.
Aus diesem Grund stehen folgende Alternativen zur Verfügung:
In der imperativen oder funktionalen Programmierung ist das Entwerfen (und damit Modellieren) des eigentlichen Algorithmus (Problem) ein wichtiges Thema. Für das OO-Design gibt es eine Unified Modeling Language (UML).
Diese Programmiermethode eignet sich gut für große, komplexe Programme, die aktualisiert oder aktiv gewartet werden. Dazu gehören:
Die objektorientierte Programmierung (OOP) ist ein Paradigma der Computerprogrammierung, bei dem das Softwaredesign auf Daten oder Objekten und nicht auf Funktion und Logik basiert.
Karteikarten in Objektorientierte Programmierung132
Lerne jetztWas versteht man unter objektorientierter Programmierung?
Die objektorientierte Programmierung (OOP) ist ein Paradigma der Computerprogrammierung, bei dem das Softwaredesign auf Daten oder Objekten und nicht auf Funktion und Logik basiert.
Ergänze
Der erste Schritt in der objektorientierten Programmierung besteht darin, alle (1) zu sammeln, mit denen ein Programmierer arbeiten möchte, und festzustellen, wie sie zueinander in Beziehung stehen. Dies ist eine Aufgabe namens (2) .
(1) Objekte
(2) Datenmodellierung
Wahr oder Falsch
Eine Klasse ist ein benutzerdefinierter Datentyp, der als Blaupause für einzelne Objekte, Attribute und Methoden dient.
Wahr
Benenne die Strukturelemente der objektorientierte Programmierung.
Was ist ein Objekt?
Ein Objekt ist eine Instanz einer Klasse, die mit speziell definierten Daten erstellt wurde. Objekte können realen Objekten oder abstrakten Entitäten entsprechen.
Wahr oder Falsch
Attribute werden in der Klassenvorlage definiert und repräsentieren den Zustand des Objekts. Objekte haben Daten, die in Attributfeldern gespeichert sind. Klassenattribute gehören zur Klasse selbst.
Wahr
Du hast bereits ein Konto? Anmelden
Die erste Lern-App, die wirklich alles bietet, was du brauchst, um deine Prüfungen an einem Ort zu meistern.
Melde dich an für Notizen & Bearbeitung. 100% for free.
Speichere Erklärungen in deinem persönlichen Bereich und greife jederzeit und überall auf sie zu!
Mit E-Mail registrieren Mit Apple registrierenDurch deine Registrierung stimmst du den AGBs und der Datenschutzerklärung von StudySmarter zu.
Du hast schon einen Account? Anmelden