Programmierung Flashcards
Was ist die Objektorientierung?
Ein Programmierparadigma, welches mit Objekten arbeitet.
Zeichnet sich hauptsächlich durch drei Konzepte aus:
- Vererbung
- Kapselung
- Polymorphie
Was ist ein Programmierparadigma?
Bezeichnet eine bestimmte Vorgehensweise bei der Programmierung
- objektorientiert
- funktional
- prozedural
Was ist ein Objekt?
Ein Ding aus der realen Welt, welches Eigenschaften (Attribute) und Funktionen (Methoden) hat.
Bspw. das Modell eines Fahrzeugs oder das Abschließdatums eines Kaufvertrags
Was ist eine Klasse?
Viele objekto. Sprachen benutzen Klassen als Baupläne für Objekte.
Objekte sind dann Instanzen dieser Klasse, welche die konkreten Angaben beinhalten (Fahrzeug mit Gestellnummer, Lackierung etc.)
Was ist die Kapselung?
Objekte kapseln die Attribute und die dazugehörigen Methoden. Der Zugriff auf Attribute sollte nur über Methoden möglich sein, damit die Manipulation der Werte verhindert wird.
Das Objekt bleibt dadurch in einem gültigen Zustand.
Was ist die Vererbung?
Klassen können ihre Attribute und Methoden an andere Klassen vererben.
Diese würden dann den erbenden Klassen zur Verfügung stehen.
Vererbende Klasse = Basisklasse
Erbende Klasse = Subklasse
Was ist die Polymorphie?
Heißt “Vielgestaltigkeit”. Bedeutet, dass Variablen Objekten unterschiedlichen Typs zugewiesen werden können, die sich beim Aufruf derselben Methode dann unterschiedlich verhalten.
Beispiel: List aus Java. Ich kann ihr eine ArrayList zuordnen oder eine LinkedList (dieselbe Methoden, aber unterschiedliche Implementierung)
Polymorphie tritt ein bei der Vererbung oder bei Interfaces
Überall wo ich eine Basisklasse oder ein Interface erwarte, kann auch eine Subklase oder implementierende Klasse verwendet werden
Warum verwendet man Getter/Setter, anstatt Attribute sichtbar zu machen?
Um die Gültigkeit des Objekts sicherzustellen
Was wird in einem Objekt gekapselt?
Daten (Attribute) und Methoden
Welche Programmierparadigmen gibt es?
Prozedural, Funktional, Objektorientiert
Erkläre das “Geheimnisprinzip”.
Ein Objekt soll nach außen nur die Informationen und Methoden bereitstellen, die zur Anwendung notwendig sind.
Die Implementierung ist nicht relevant, sondern nur das gewünschte Ergebnis. Vergleichbar mit einer Black Box.
Was sind Sichtbarkeitsmodifizierer?
Werden benutzt, um den Zugriff auf Methoden und Attribute zu steuern (wer diese quasi sehen kann).
Es gibt verschiedene Abstufungen: protected, private, public.
Java spezifisch: package-private
Wofür ist das Geheimnisprinzip wichtig?
Für die Wiederverwendbarkeit von Code.
Wenn wir eine Methode nutzen und diese intern durch eine performantere Lösung ausgetauscht wird, müssen wir nichts ändern, das Ergebnis bleibt Dasselbe.
-> Schnittstellen müssen unverändert bleiben
Wer hat Zugriff auf ein Element, welches mit “private” gekennzeichnet ist?
Ist nur innerhalb der Klasse verwendbar.
Wer hat Zugriff auf ein Element, welches mit “public” gekennzeichnet ist?
Ist für alle anderen Objekte sichtbar.