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 et à la classe elle-même. Aussi, il peut s'appliquer sur les paramètres d'une méthode et sur les variables locales. Selon le contexte, on utilise final dans un souci de conception ou d'optimisation.

Il est aussi utilisé avec le même rôle en PHP depuis la version 5 (en 2004)[1].

Méthodes

Une méthode indiquée comme final ne peut être redéfinie dans une classe dérivée.

Exemple :

public class MaClass {
    public final void uneMethode() {
        ...
    }
}

On peut s'en servir pour forcer le comportement d'une méthode dans les sous-classes.

Attributs de classe ou d'objet

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; // fonctionne car 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 souci 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 bibliothèque standard Java sont déclarées comme final telles que java.lang.System[2] ou java.lang.String[3].

Paramètres de méthode

Le mot clef final peut aussi être utilisé pour le paramètre d'une méthode dont on est sûr qu'elle ne va pas changer de référence :

public static int addition(final int a, final int b){
    return a + b;
}

Variables locales

Une autre utilisation du mot clef final est dans les variables locales. Elle suit la même règle, c'est-à-dire qu'on est sûr que la variable ne va pas changer.

public static int ajouterCinq(final int a){
    final int b = 5;
    return a + b;
}

Voir aussi

Articles connexes

Liens externes

Notes et références

Références

  1. « Manual », sur php.net (consulté le ).
  2. (en) « Class System », docs.oracle.com.
  3. (en) « Class String », docs.oracle.com.

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.