Kapitel 4 Flashcards
Konzepte der OOS
Konzepte der OOS
- programmiert wird in?
- OO-Programme bestehen aus interagierenden Objekten
- programmiert werden Klassen (davon werden dann Objekte als Instanzen erzeugt)
Klassen
Def.: Beschreibung eines oder mehrerer ähnlicher Objekte (Abstraktion)
UML-Notation:
3 Rechtecke: Name, Attributdeklaration, Methodendeklaration
Objekte Def.
Def.: Ein Objekt ist ein tatsächlich existierendes „Ding“. Es ist eindeutig identifizierbar durch
Objekt-ID (Referenz) und hat Zustand (Attributwerte) und Verhalten (Methoden).
Objekt in UML:
Objekt in UML:
meistens Objekte nicht in UML dargestellt, ansonsten wie Klassen, aber Name (Kleinbuchstabe
vorne!) unterstrichen, Attribute haben Werte
Auto meinAuto;
//Legt auf Stack Referenz an, die spater auf ein Auto-Objekt zeigen wird:
meinAuto = new Auto();
//Erzeugt Objekt auf Heap:
“this“
„this“ ist Referenz auf sich selbst
- muss immer dann verwendet werden, wenn Attribut durch Parameter/lokale Variable
(innerhalb einer Methode) überlagert wird
- später: mit this Referenz auf sich selbst anderen Objekten mitteilen
call-by-value in Java
call-by-value: Veränderungen der Parameter werden nach außen nicht sichtbar (s.o.: in
aktJahr steht weiterhin 2008)
- a bleibt unverändert
Konstruktoren
Bei Erzeugung neuer Objekte:
Auto meinAuto = new Auto();
// Defaultkonstruktor (Auto()) so lange vorhanden,
// bis manuell anderer Konstruktor definiert
Konstruktor stellt Speicherplatz auf Heap zur Verfügung und initialisiert Attribute
defaultmäßig
man kann auch eigenen Konstruktor implementieren
Konstruktoren Def.
Def.: Konstruktoren sind Methoden ohne explizit aufgeführten Rückgabetyp (also auch kein
void), die den Namen der Klasse erhalten, zu der sie gehören. Die Anzahl der Parameter ist
beliebig.
- Rückgabewert des Konstruktors ist Referenz auf neu erzeugten Speicherplatz
- möglichst immer vor die anderen Methode der Klasse schreiben
Überladung:
Überladung: mehrere Implementierungen einer Methode mit gleichem Namen mit
unterschiedlichen Signaturen in gleicher Klasse
Vererbung Def.
unterstützt die Wiederverwendung
- Def.: Die Möglichkeit eine Klasse B so zu definieren, dass sie ohne explizite Deklaration
alle Attribute und Methoden einer bereits definierten Klasse übernimmt (erbt), heißt
Vererbung.
Mehrfachvererbung
Gibt es in Java nicht! Simulation durch Interf
Zuweisungskompatibilitat
Man kann einer Objektreferenz auf ein Oberklassenobjekt eine Referenz auf ein Objekt einer
Unterklasse zuweisen.
Da jeder LKW ein Auto ist, sind in LKWs auch alle Dinge der Autos enthalten ) kein
Problem
Umgedreht geht nicht, später aber mit cast