Il est utilisé lorsque vous souhaitez préciser qu'il est lié à une instance ou une méthode d'une certaine classe. S'il y a un cas où ce qui est défini dans la classe interne est requis par lui-même, il est préférable de le définir au niveau supérieur au lieu de la classe interne.
** À utiliser comme classe d'assistance utile lorsqu'elle est utilisée avec une classe externe. ** **
Par exemple, définissons une classe de calculatrice qui peut exécuter quatre règles. Voici un exemple dans lequel la classe calculator définit les opérations de calcul prises en charge avec l'énumération de classe interne.
Exemple de classe intérieure
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);
}
}
Exemple de classe intérieure_Exemple d'utilisation
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
}
}
** Si vous souhaitez définir une classe liée à une classe externe **
■ Définir Iterator lié à java.util.ArrayList ■ Définir Iterator lié à java.util.LinkedList ■ HashIterator lié à java.util.HashMap
Il semble que la classe interne soit utilisée lorsque vous souhaitez définir des éléments liés à cette classe, tels que Iterator of ArrayList et Iterator of HashMap.