« Programmation Java/Classes internes » : différence entre les versions

→‎Classe anonyme : + interfaces
(→‎Classe interne non statique : formulation, Mef, précision)
(→‎Classe anonyme : + interfaces)
== Classe anonyme ==
 
Une classe peut être déclarée au moment de son l'instanciation de sa classe parente. On parle alors de classe anonyme. Exemple :
<source lang="java">
public class ClasseExterne {
BisextileBissextile b = new BisextileBissextile() {
public boolean evaluer(annee) {
if ((annee%4==0 && annee%100!=0) || annee%400==0) {
return true;
} else {
return false;
}
}
};
public static void main(String args[]) {
long an = Long.parseLong(args[0]);
if (b.evaluer(an)) {
System.out.println("L'année entrée est bisextilebissextile");
} else {
System.out.println("L'année entrée n'est pas bisextilebissextile");
}
}
}
</source>
La classe BisextileBissextile est ici la classe mère d'une classe anonyme. Cette classe sera automatique nommé par le compilateur <tt>ClasseExterne$1</tt>. Il convient d'observer le point-virgule qui suit l'accolade fermante de sa déclaration.
 
Cette méthode de création de sous-classe peut également s'appliquer aux interfaces. En utilisant la syntaxe suivante, la classe anonyme créée implémente l'interface spécifiée :
new ''Interface''()
{
''...implémentation des méthode de l'interface...''
}
 
Remarques :