Menu
Coddy logo textTech

Constantes (static final)

Fait partie de la section Programmation Orientée Objet du Journey Java de Coddy — leçon 18 sur 87.

La combinaison de static et final crée une constante - une valeur qui appartient à la classe et ne peut jamais changer. C'est la manière standard de définir des constantes en Java.

public class GameSettings {
    public static final int MAX_PLAYERS = 4;
    public static final double GRAVITY = 9.81;
    public static final String GAME_TITLE = "Space Adventure";
}

Par convention, les noms de constantes utilisent UPPER_SNAKE_CASE pour les distinguer des variables ordinaires. Comme elles sont à la fois static et final, vous y accédez via le nom de la classe et leurs valeurs sont garanties de ne jamais changer :

System.out.println(GameSettings.MAX_PLAYERS);  // 4
// GameSettings.MAX_PLAYERS = 8;  // Erreur ! Impossible de modifier

Les constantes sont généralement déclarées public car elles sont destinées à être partagées dans l'ensemble de votre application. Pensez à des valeurs telles que Math.PI - c'est une constante public static final que n'importe quel code peut utiliser.

Pourquoi utiliser des constantes au lieu de valeurs codées en dur ? Si vous écrivez 4 partout dans votre code et que vous devez plus tard le changer en 6, vous devrez trouver et mettre à jour chaque occurrence. Avec une constante comme MAX_PLAYERS, vous la modifiez à un seul endroit.

Les constantes rendent également le code plus lisible - MAX_PLAYERS est plus clair qu'un mystérieux 4.

challenge icon

Défi

Facile

Construisons un utilitaire MathConstants qui stocke des valeurs mathématiques importantes sous forme de constantes, ainsi qu'un CircleCalculator qui utilise ces constantes pour effectuer des calculs.

Vous allez créer deux fichiers pour organiser votre code :

  • MathConstants.java : Créez une classe qui contient des constantes mathématiques en utilisant des champs public static final :
    • PI avec la valeur 3.14159
    • E (le nombre d'Euler) avec la valeur 2.71828
    • GOLDEN_RATIO avec la valeur 1.61803
    N'oubliez pas d'utiliser l'UPPER_SNAKE_CASE pour les noms de constantes !
  • Main.java : Utilisez vos constantes pour effectuer des calculs de cercle. Vous recevrez un rayon en entrée et afficherez trois lignes :
    • L'aire du cercle : Area: [value]
    • La circonférence du cercle : Circumference: [value]
    • Le diamètre mis à l'échelle par le nombre d'or : Golden Diameter: [value]

Pour les calculs :

  • Area = PI * radius * radius
  • Circumference = 2 * PI * radius
  • Golden Diameter = 2 * radius * GOLDEN_RATIO

Vous recevrez une entrée : le rayon (double).

Formatez toutes les valeurs de sortie à 2 décimales en utilisant String.format("%.2f", value). Accédez à vos constantes via le nom de la classe, comme MathConstants.PI.

Aide-mémoire

La combinaison de static et final crée une constante - une valeur qui appartient à la classe et ne peut jamais changer :

public class GameSettings {
    public static final int MAX_PLAYERS = 4;
    public static final double GRAVITY = 9.81;
    public static final String GAME_TITLE = "Space Adventure";
}

Par convention, les noms de constantes utilisent UPPER_SNAKE_CASE. Accédez aux constantes via le nom de la classe :

System.out.println(GameSettings.MAX_PLAYERS);  // 4
// GameSettings.MAX_PLAYERS = 8;  // Erreur ! Impossible de modifier

Les constantes sont généralement déclarées public pour être partagées dans toute votre application. Elles rendent le code plus facile à maintenir et plus lisible en remplaçant les valeurs codées en dur par des noms significatifs.

Essayez vous-même

import java.util.Scanner;

class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        double radius = scanner.nextDouble();
        
        // TODO: Calculer l'aire en utilisant MathConstants.PI
        // Formule: PI * radius * radius
        
        // TODO: Calculer la circonférence en utilisant MathConstants.PI
        // Formule: 2 * PI * radius
        
        // TODO: Calculer le diamètre d'or en utilisant MathConstants.GOLDEN_RATIO
        // Formule: 2 * radius * GOLDEN_RATIO
        
        // TODO: Afficher les résultats formatés à 2 décimales
        // Utiliser String.format("%.2f", value) pour le formatage
        // Format de sortie:
        // Area: [value]
        // Circumference: [value]
        // Golden Diameter: [value]
        
    }
}
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Programmation Orientée Objet