- Final (Java)
-
En langage Java, le mot-clé
final
indique qu'un élément ne peut être changé dans la suite du programme. Il peut s'appliquer aux méthodes et attributs d'une classe ainsi que la classe elle-même. Selon le contexte, on utilisefinal
dans un souci de conception ou d'optimisation. C'est pourquoi il est parfois employé de façon incorrecte.Sommaire
Méthodes
Une méthode indiquée comme
final
ne peut être redéfinie dans une classe dérivée.Exemple :
public final class MaClass { public final void uneMethode() { ... } }
On peut s'en servir pour forcer le comportement d'une méthode dans les sous-classes.
Attributs
Appliqué à un attribut de type primitif, ce dernier devient une constante. L'affectation doit être effectuée, au plus tard, dans le constructeur de la classe. Le fonctionnement est un peu différent sur un type objet : c'est la référence vers l'objet qui devient constante et non sa valeur. Ce dernier point s'applique également aux tableaux qui sont aussi des références.
Exemple :
public final class MaClass { public final double PI = 3.14159; // Impossible de modifier la valeur public final double[] tailles = {50.2, 60.8}; public void uneMethode() { tailles[0] = 99; // tailles est une référence sur un tableau } }
Classes
Les classes
final
ne peuvent être dérivées.Exemple :
public final class ClasseFinal { ... }
Cela peut être fait dans un soucis d'efficacité ou pour empêcher l'utilisateur d'en faire une utilisation non-appropriée dans la classe dérivée.
De nombreuses classes de la libraire standard sont déclarées comme
final
tel quejava.lang.System
oujava.lang.String
.Voir aussi
Articles connexes
Liens externes
- (fr) http://bruce-eckel.developpez.com/livres/java/traduction/tij2/?chap=7&page=2 : Article sur le mot-clé final (developpez.com)
Wikimedia Foundation. 2010.