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

Contenu supprimé Contenu ajouté
Aucun résumé des modifications
 
Traroth (discussion | contributions)
Classes anonymes
Ligne 63 :
}
}
 
== Classe anonyme ==
 
Une classe peut être déclarée au moment de son instanciation. On parle alors de classe anonyme. Exemple :
 
<tt>
public class ClasseExterne {
Bisextile b = new Bisextile() {
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 bisextile");
} else {
System.out.println("L"année entrée n'est pas bisextile");
}
}
}
</tt>
 
La classe Bisextile est ici une classe anonyme. Il convient d'observer le point-virgule qui suit l'accolade fermante de sa déclaration.
 
Remarques :
*Une classe anonyme est implicitement considérée comme ''final'' (et ne peut donc pas être ''abstract'').
*Une classe anonyme ne peut pas contenir de constructeur. Le seul constructeur est le contructeur fournit par le langage.
*Une classe anonyme ne peut pas être abstraite.
*Une classe anonyme ne possède pas d'identificateur et ne peut donc être instanciée qau'une seule fois (d'où son nom).