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

modifier

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

modifier

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

modifier

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

modifier

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

modifier

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

modifier

Articles connexes

modifier

Liens externes

modifier

Notes et références

modifier

Références

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

📚 Artikel Terkait di Wikipedia

Java (langage)

Pour les articles homonymes, voir Java. Ne doit pas être confondu avec JavaScript. Java est un langage de programmation de haut niveau orienté objet créé

JavaBeans

articles homonymes, voir Beans. JavaBeans est une technologie de composants logiciels écrits en langage Java. La spécification JavaBeans de Oracle définit les

Jakarta EE

Java SE Jakarta EE Java ME JavaFX Java Card Jakarta EE (anciennement Java 2 Platform, Enterprise Edition, ou J2EE /ʒi.dø.ø.ø/, puis Java Platform, Enterprise

La Java bleue

La Java Bleue Fréhel, première interprète de la chanson en 1939, photographiée ici en 1941. La Java bleue est une chanson de Géo Koger et Noël Renard pour

Java Card

général, voir Système d'exploitation pour carte à puce. Java SE Jakarta EE Java ME JavaFX Java Card Java Card est un système d'exploitation pour carte à puce

Machine virtuelle

machine virtuelle Java de Sun Microsystems sont des machines virtuelles de haut niveau. La spécification technique de la machine virtuelle Java ou JVM, définie

Oracle (entreprise)

virtualisation Oracle VM Oracle VM VirtualBox Solutions Java Plateformes Java Java EE Java ME Java SE JavaFX Environnements de développement JDeveloper NetBeans

La Java des bombes atomiques

La Java des bombes atomiques Pistes de Chansons impossibles La Java des bombes atomiques est une chanson écrite par Boris Vian en 1955, arrangée par Alain