Es wird verwendet, wenn Sie klarstellen möchten, dass es sich um eine Instanz oder Methode einer bestimmten Klasse handelt. Wenn es einen Fall gibt, in dem das, was in der inneren Klasse definiert ist, für sich selbst erforderlich ist, ist es besser, es auf der obersten Ebene anstelle der inneren Klasse zu definieren.
** Verwendung als nützliche Hilfsklasse bei Verwendung mit einer externen Klasse. ** ** **
Definieren wir beispielsweise eine Taschenrechnerklasse, die vier Regeln ausführen kann. Das folgende Beispiel zeigt, wie die Rechnerklasse die unterstützten Berechnungsoperationen mit der Aufzählung der inneren Klasse definiert.
Beispiel der inneren Klasse
public class Calculator {
public enum Operation {
PLUS { public int apply(int x, int y) { return x + y; } },
MINUS { public int apply(int x, int y) { return x - y; } },
MULTIPLY { public int apply(int x, int y) { return x * y; } },
DIVIDE { public int apply(int x, int y) { return x / y; } };
public abstract int apply(int x, int y);
}
public int calc(Operation operation, int x, int y) {
return operation.apply(x, y);
}
}
Beispiel der inneren Klasse_Anwendungsbeispiel
public class Main {
public static void main(String[] args) {
Calculator calculator = new Calculator();
int result = calculator.calc(Calculator.Operation.PLUS, 2, 3);
System.out.println(result);
//=> 5
}
}
** Wenn Sie eine Klasse definieren möchten, die sich auf eine äußere Klasse bezieht **
■ Definieren Sie den Iterator für java.util.ArrayList ■ Definieren Sie den Iterator für java.util.LinkedList ■ HashIterator für java.util.HashMap
Es scheint, dass die innere Klasse verwendet wird, wenn Sie eine Beziehung zu dieser Klasse definieren möchten, z. B. Iterator von ArrayList und Iterator von HashMap.