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.