Aller au contenu

Final (Java)

Un article de Wikipédia, l'encyclopédie libre.
Ceci est une version archivée de cette page, en date du 4 janvier 2011 à 16:03 et modifiée en dernier par 93.2.110.105 (discuter) (Nouvelle page : En langage Java, le mot-clé <code>'''final'''</code> indique qu'un élément ne peut être changé dans la suite du programme. Il peut s'appliquer aux [[Méthode (informatique)|...). Elle peut contenir des erreurs, des inexactitudes ou des contenus vandalisés non présents dans la version actuelle.
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)

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