Begriffe und Leitfragen
Fragen
- Wie können Klassen in Klassen aufgenommen werden?
- Wie kann ich „mal eben“ eine Klasse und ein Objekt davon erzeugen?
- Wie kann ich Methoden herumreichen?
Begriffe
Alle Java-Quellen zu diesem Kapitel finden sich auf Gitty.
Links zur Java-Insel
Überblick
Statisch geschachtelter Typ
class Outer {
static class Inner {}
}
Ein Typ, innerhalb einer anderen Klasse, die mit dem Schlüsselwort static
gekennzeichnet ist.
Innerer Typ / nicht-statisch
class Outer {
class Inner {}
}
Ein Typ, innerhalb einer anderen Klasse, ohne das Schlüsselwort static
.
Lokaler Typ
class Outer {
void m() {
class Inner {}
}
}
Ein Typ innerhalb einer Methode.
Anonyme innere Klasse
class Outer {
void m() {
Runnable r = new Runnable() {
public void run() {}
};
}
}
Eine unbenannte Klasse, innerhalb einer Methode, die von einer anderen, benannten Klasse, abgeleitet ist.
Lambda
class Outer {
void m() {
Runnable r = () -> {};
}
}
Eine spezielle Konstruktion, die eine „freischwebende“ Methode erlaubt.