Objektorientierte Programmierung

Aus PlusPedia
Wechseln zu: Navigation, Suche

Die objektorientierte Programmierung (kurz OOP) ist ein Technik der Softwareentwicklung.

Coin Ü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)


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




Diesen Artikel melden!
Verletzt dieser Artikel deine Urheber- oder Persönlichkeitsrechte?
Hast du einen Löschwunsch oder ein anderes Anliegen? Dann nutze bitte unser Kontaktformular

PlusPedia Impressum
Diese Seite mit Freunden teilen:
Mr Wong Digg Delicious Yiggit wikio Twitter
Facebook




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.


Typo3 Besucherzähler - Seitwert blog counter
java hosting vpn norway