Junior — Middle
Was ist der Unterschied zwischen einer inneren Klasse und einer verschachtelten Klasse in der Programmierung?
sobes.tech KI
Antwort von AI
In Java (und in Android) ist eine verschachtelte Klasse jede Klasse, die innerhalb einer anderen Klasse deklariert ist. Verschachtelte Klassen gibt es in zwei Typen:
- Statische verschachtelte Klasse (static nested class) — deklariert mit dem Modifikator
static. Sie hat keinen direkten Zugriff auf die nicht-statischen Mitglieder der äußeren Klasse. - Innere Klasse (inner class) — eine verschachtelte Klasse ohne den Modifikator
static. Sie ist mit einer Instanz der äußeren Klasse verbunden und hat Zugriff auf deren nicht-statische Felder und Methoden.
Beispiel:
class Outer {
private int outerField = 10;
static class StaticNested {
void print() {
// Kein direkter Zugriff auf outerField
System.out.println("Statische verschachtelte Klasse");
}
}
class Inner {
void print() {
// Zugriff auf outerField möglich
System.out.println("Innere Klasse, outerField = " + outerField);
}
}
}
Das Hauptunterscheidungsmerkmal ist also, dass die innere Klasse mit einem Objekt der äußeren Klasse verbunden ist und auf deren nicht-statische Mitglieder zugreifen kann, während die statische verschachtelte Klasse das nicht kann.