Objektorientierte Programmierung
Die objektorientierte Programmierung (kurz OOP) ist ein Technik der Softwareentwicklung.
Inhaltsverzeichnis
Übrigens: Die PlusPedia ist NICHT die Wikipedia. Wir sind ein gemeinnütziger Verein, PlusPedia ist werbefrei. Wir freuen uns daher über eine kleine Spende! |
1 Begriffe
1.1 Klasse
Eine Klasse ist eine Schablone aus der zur Laufzeit ein Objekt erzeugt wird. (Instanzierung) Eine Klase entspricht einem Abstrakten Datentyp. Über der Schnittstelle hinaus enthält die Klasse auch Methoden, die nicht nur beschreiben was der Datentyp enthält, sondern auch was man damit machen kann.
In Smalltalk und in Python ist alles ein Objekt. Andere Objektorientierte Programmiersprachen wie Java, C++ oder Delphi ziehen dies nicht konsequent durch.
In Python ist selbst der Typ einer Variable ein Objekt.
Eine Klasse ist in der Tat Code.
1.1.1 Attribute
Attribute sind Daten der Klasse. Diese können ebenfalls komplexe Datentypen sein.
1.1.2 Methoden
Methoden sind im Prinzip Prozeduren und Funktionen, die mit den Daten arbeiten können.
1.1.3 Terminologie
Begriff | B2 | B3 |
---|---|---|
Superklasse | Basisklasse | Oberklasse |
Subklasse | ||
Methode | ||
Attribute | ||
Exempar |
1.2 Instanzen / Objekte
Aus einer Klasse (Schablone) kann eine Instanz / ein Objekt gebildet werden. Dieser Schritt wird instanzieren genannt.
1.3 Kapselung
Datenkapselung dient dazu, dass ein Objekt seine Daten vor der Außenwelt schützen kann.
Namensräume sind "Kapselung im Kleinen".
Attribute und Methoden können
Art | UML | Beschreibung |
---|---|---|
public | (+) | Auf diese Methode / dieses Attribut darf außerhalb der Klasse zugegriffen werden. |
private | (-) | Auf diese Methode / dieses Attribut darf nur innerhalb der Klasse zugegriffen werden. |
protected | (#) | Auf diese Methode / dieses Attribut darf innerhalb der Klasse und in spezialisierten (abgeleitete) Klassen verwendet werden. |
package | (~) | Auf diese Methode / dieses Attribut darf innerhalb des Packages zugegriffen werden. |
Das Ziel sollte sein, so viel wie möglich private zu deklarieren und so wenig wie nötig public.
1.4 Vererbung und Polymorphie
Klassen können von anderen Klassen abgeleitet werden (Vererbung). Vererbt werden die Daten und die Methoden. Die Methoden der abgeleiteten (spezialisierten) Klassen können überschrieben werden. Dieses Überschreiben wird Polymorphie genannt.
Vererbung ist sinnvoll, wenn Objekte konzeptionell aufeinander aufbauen.
1.4.1 Regeln
1.4.1.1 Ist-Ein
- Ein Personenkraftwagen ist ein Kraftfahrzeug
- Ein Kraftfahrzeug ist ein Fahrzeug
- Ein Fahrzeug ist KEIN Personenkraftwgaen - es kann auch ein Fahrrad sein.
- Ein Fahrzeug ist kein Sitz - und ein Sitz ist kein Fahrzeug:
1.4.1.2 Hat-Einen
- Ein Personenkraftwagen hat einen Sitz
1.4.2 Mehrfachvererbung
Eine Klasse kann unter Umständen von mehreren Klassen erben. Dies führt auch zu einer gewissen Komplexität.
Beispiel:
- Es gibt Landfahrzeuge
- Es gibt Wasserfahrzeug
- Ein Amphibienfahrzeug ist ein Landfahrzeug und ein Wasserfahrzeug
Eine Mehrfachvererbung gibt es in C++, Eiffel und in Python. In Java, Smalltalk und Ada gibt es keine Mehrfachvererbung.
Java, Delphi und c# bieten "Schnittstellen" an - damit kann die Mehrfachvererbung in einer eingeschränkten Form abgebildet werden.
1.4.3 Beispiele
1.4.3.1 Fahrezuge
- Klasse CFahrzeug (Attribute: Höchstgeschwindigkeit, maximale Zuladung, Farbe - Methode: Fahren)
- Klasse CKraftfahrzeug (Attribute: Art des Antriebs, Leistung - Methode: Starte_Motor)
- Klasse CPersonenkraftwagen (Attribute: Anzahl der Sitzplätze)
- Klasse CKraftfahrzeug (Attribute: Art des Antriebs, Leistung - Methode: Starte_Motor)
1.5 Introspektion
- Introspektion ist eine Reflixion (engl. reflection) - Ein Programm hat Erkenntnisse zu seiner eigenen Struktur
- Zur Laufzeit kann abgefragt werden, welche Methoden eine Klasse hat - Welchen Typ hat eine Variable.
1.6 Klassenbibliothek
- Eine Klassenbibliothek ist ein Modul.
2 Links und Quellen
2.1 Siehe auch
2.2 Weblinks
2.3 Literatur
2.4 Einzelnachweise
3 Vergleich zu Wikipedia
Hast du einen Löschwunsch oder ein anderes Anliegen? Dann nutze bitte unser Kontaktformular
PlusPedia Impressum
Bitte Beachte:
Sämtliche Aussagen auf dieser Seite sind ohne Gewähr.
Für die Richtigkeit der Aussagen übernimmt die Betreiberin keine Verantwortung.
Nach Kenntnissnahme von Fehlern und Rechtsverstößens ist die Betreiberin selbstverständlich bereit,
diese zu beheben.
Verantwortlich für jede einzelne Aussage ist der jeweilige Erstautor dieser Aussage.
Mit dem Ergänzen und Weiterschreiben eines Artikels durch einen anderen Autor
werden die vorhergehenden Aussagen und Inhalte nicht zu eigenen.
Die Weiternutzung und Glaubhaftigkeit der Inhalte ist selbst gegenzurecherchieren.