PlusPedia wird derzeit technisch modernisiert. Aktuell laufen Wartungsarbeiten. Für etwaige Unannehmlichkeiten bitten wir um Entschuldigung; es sind aber alle Artikel zugänglich und Sie können PlusPedia genauso nutzen wie immer.

Neue User bitte dringend diese Hinweise lesen:

Anmeldung - E-Mail-Adresse Neue Benutzer benötigen ab sofort eine gültige Email-Adresse. Wenn keine Email ankommt, meldet Euch bitte unter NewU25@PlusPedia.de.

Hinweis zur Passwortsicherheit:
Bitte nutzen Sie Ihr PlusPedia-Passwort nur bei PlusPedia.
Wenn Sie Ihr PlusPedia-Passwort andernorts nutzen, ändern Sie es bitte DORT bis unsere Modernisierung abgeschlossen ist.
Überall wo es sensibel, sollte man generell immer unterschiedliche Passworte verwenden! Das gilt hier und im gesamten Internet.
Aus Gründen der Sicherheit (PlusPedia hatte bis 24.07.2025 kein SSL | https://)

Bei PlusPedia sind Sie sicher: – Wir verarbeiten keine personenbezogenen Daten, erlauben umfassend anonyme Mitarbeit und erfüllen die Datenschutz-Grundverordnung (DSGVO) vollumfänglich. Es haftet der Vorsitzende des Trägervereins.

PlusPedia blüht wieder auf als freundliches deutsches Lexikon.
Wir haben auf die neue Version 1.43.3 aktualisiert.
Wir haben SSL aktiviert.
Hier geht es zu den aktuellen Aktuelle Ereignissen

Objektorientierte Programmierung

Aus PlusPedia
Version vom 23. Dezember 2024, 18:12 Uhr von Fmrauch (Diskussion | Beiträge) (Klasse: Rechtschreibung, z.T. unlogisch)
Zur Navigation springen Zur Suche springen
Fehler beim Erstellen des Vorschaubildes: Datei fehlt Achtung! Die Seite wird gerade bearbeitet.
Dieser Artikel oder Abschnitt wird gerade bearbeitet. Um Bearbeitungskonflikte zu vermeiden, warte bitte mit Änderungen, bis diese Markierung entfernt ist. Eine Begründung steht auf der Diskussionsseite, dort kannst du nachfragen oder wende dich an den Bearbeiter auf seiner Diskussionsseite.

Die objektorientierte Programmierung (kurz OOP) ist ein Technik der Softwareentwicklung und eine Kategorie für Computerprogramme bzw. Programmiersprachen. Die Grundidee besteht darin, den Aufbau der Software an den Grundstrukturen und Objekten desjenigen Bereichs der Wirklichkeit auszurichten, der die gegebene Anwendung betrifft. Ein Modell dieser Strukturen wird in der Entwurfsphase aufgestellt. Die Umsetzung dieser Denkweise erfordert die Einführung verschiedener Konzepte, insbesondere die Unterscheidung von Klassen, Attributen und Methoden. In Smalltalk und in Python ist alles ein Objekt. Andere objektorientierte Programmiersprachen wie Java, C++ oder Delphi ziehen dies nicht konsequent durch.

Begriffe

Klasse

Eine Klasse ist eine Schablone, aus der zur Laufzeit ein Objekt erzeugt wird (Instanzierung). Eine Klasse entspricht einem Abstrakten Datentyp. Über die 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 Python ist selbst der Typ einer Variable ein Objekt.

Attribute

Attribute sind Daten der Klasse. Diese können ebenfalls komplexe Datentypen sein.

Methoden

Methoden sind im Prinzip Prozeduren und Funktionen, die mit den Daten arbeiten können.

Terminologie

Begriff B2 B3
Superklasse Basisklasse Oberklasse
Subklasse
Methode
Attribute
Exempar

Instanzen / Objekte

Aus einer Klasse (Schablone) kann eine Instanz / ein Objekt gebildet werden. Dieser Schritt wird instanzieren genannt.

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.

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.

Regeln

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:
Hat-Einen
  • Ein Personenkraftwagen hat einen Sitz

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.


Beispiele

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)


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.

Klassenbibliothek

  • Eine Klassenbibliothek ist ein Modul.

Siehe auch

Weblinks

Literatur

Einzelnachweise


Vergleich zu Wikipedia