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 utilise final
dans un soucis de conception ou d'optimisation. C'est pourquoi il est parfois employé de façon incorrect.
Méthodes
Une méthode indiquée comme final
ne peut être surchargée 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. 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é dans la classe dérivée.
De nombreuses classes de la libraire standard sont déclarées comme final
tel que Modèle:Javadoc:SE ou Modèle:Javadoc:SE.
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)