Objektorientiertes Programmieren (Java)

From FuxWiki
Revision as of 10:48, 11 May 2026 by Fux (talk | contribs)
Jump to navigation Jump to search

Klassenhierachien

  • Abstrakte Klasse: Eine Klasse von der keine direkten Objekte existieren können. Sie sind nur angelgt um Eigenschaften von Subklassen zusammenzufassen (Beispiel Abstrakte Klasse Einzelhandelsgeschäft hat unter sich z.b. Buchladen oder Lebensmittelladen)
  • Subklassen sind Klassen die Eigenschaften und Methoden gemeinsam haben, die sie von der Superklasse erben können. Sie müssen nur in der übergeordneten Klasse beschrieben werden und in der Subklasse spezialisiert werden.
  • Ein Object einer Klasse die Superklassen besitzt kann immer auch als Object aller Superklassen angesehen werden, da die Klasse mindestens alles kann was die Superklassen können.

Objektorientiertes Programmieren

Es gibt keine global arbeitenden Prozeduren oder Operationen (Spezialfall Java mit Klassenmethoden, Methoden die keine Zustände verändern sondern nur eine Aktion auslösen oder einen Wert berechnen)

Normalerweise verändert man Zustände innerhalb eines Obejcts durch einen Methodenaufruf.

Strukturierung und Datenkapselung

Jedes Object hat eine klar festgelegte Schnittstelle die beschreibt welche Nachrichten es versteht. Dies erlaubt die Strukturierung durch Klassifizierung sowie die Kapselung von Daten. Hier gemeint ist das nur durch Methoden auf den Zustand eines Objectes zugegriffen werden kann, um dem Object Kontrolle über seine Daten zu lassen.

Erweiterbarkeit

Das Nachrichtenmodell der objectorientierten Programmierung ermöglich die Klassifizierung von Objecten danach welche Nachrichten sie Verstehen.

Stelle ich mir nun ein Behälterobject vor das eine Methode "PrintAll" besitzt, das nur Subklassen einer Klasse "printable" enthält, weiss ich bereits jetzt das jedes dieser Objecte eine Methode "print" hat und muss in der Methode "printAll" keine Fallunterscheidung vornehmen. Jedes Object wird implizit die für sich passende Methode auswählen und ausführen.