Les classes internes (inner classes) peuvent être situées à différent niveau d'une classe normale. Elles représentent une particularité intéressante et subtile de la programmation avec le langage Java.
class ClasseParente { modificateur class ClasseInterne [extends SuperClasse] [implements ListeInterfaces] { // Instructions... } modificateur interface InterfaceInterne { // Instructions... } // Instructions... }
Il existe quatre types de classes imbriquées :
Les interfaces peuvent être également déclarées à n'importe quel endroit d'une classe.
Une classe interne peut définir de la même manière, une à plusieurs autres classes internes.
Les classes internes après la compilation sont enregistrées dans un fichier .class particulier.
ClasseParente$ClasseInterne.class
Les fichiers stockant des classes locales possèdent un format différent incluant un identificateur numérique représentant la méthode d'inclusion.
ClasseExterne$1$ClasseLocale.class
Les classes anonymes sont stockées dans un format distinct incluant, lui aussi, un identificateur numérique représentant l'instance d'inclusion.
ClasseExterne$1.class
De cette façon, le nom d'une classe interne peut être identique à celui d'une autre sans pour autant créer d'ambiguités, lors de l'emploi de l'une ou l'autre des classes.
Chaque type de classes ou interfaces intérieures possèdent des spécifités programmatiques propres.
Sommaire