Sobes.tech
Junior

Que signifie le mot-clé 'static' en Java?

sobes.tech IA

Réponse de l'IA

Le mot-clé static en Java est utilisé pour déclarer des éléments qui appartiennent à la classe plutôt qu'à une instance spécifique de l'objet.

Le mot-clé peut être appliqué à :

  • Variables (champs) :
    • Une copie de la variable existe pour toute la classe, indépendamment du nombre d'instances créées.
    • Elle peut être accédée via le nom de la classe (par exemple, ClassName.staticVariable).
    // Exemple de variable statique
    public class MyMath {
        public static final double PI = 3.14159;
        // Accès : MyMath.PI
    }
    
  • Méthodes :
    • La méthode appartient à la classe, pas à un objet en particulier.
    • Elle peut être appelée via le nom de la classe (par exemple, ClassName.staticMethod()).
    • Elle n'a pas accès aux membres non statiques de la classe (variables ou méthodes), car ils sont liés à l'instance.
    // Exemple de méthode statique
    public class Calculator {
        public static int add(int a, int b) {
            return a + b;
        }
        // Appel : Calculator.add(5, 3)
    }
    
  • Blocs d'initialisation :
    • S'exécute une fois lors du chargement de la classe dans la JVM.
    • Utilisé pour initialiser des champs statiques ou effectuer d'autres actions liées à la classe.
    // Exemple de bloc statique
    public class DataInitializer {
        static {
            // Code exécuté lors du chargement de la classe
            System.out.println("DataInitializer class loaded.");
        }
    }
    
  • Classes internes (inner/nested classes) :
    • La classe interne statique se comporte comme une classe de niveau supérieur, sauf qu'elle est à l'intérieur d'une autre classe.
    • Ne nécessite pas la création d'une instance de la classe externe pour y accéder.
    • A accès uniquement aux membres statiques de la classe externe.
    // Exemple de classe interne statique
    public class OuterClass {
        static class StaticInnerClass {
            // Champs et méthodes de la classe interne statique
        }
    }
    // Accès : OuterClass.StaticInnerClass inner = new OuterClass.StaticInnerClass();
    

L'utilisation de static aide à créer des classes utilitaires, stocker des données communes et gérer l'état au niveau de la classe.