Junior
Pour quelles applications le modificateur static est-il adapté?
sobes.tech IA
Réponse de l'IA
- Variables de classe (champs statiques): Pour stocker des données communes à toutes les instances de la classe. Par exemple, un compteur d'objets créés ou des constantes.
- Méthodes de classe (méthodes statiques): Pour effectuer des actions qui ne dépendent pas d'une instance spécifique de la classe. Par exemple, des fonctions auxiliaires ou des méthodes pour travailler avec des champs statiques.
- Blocs d'initialisation statiques: Pour effectuer une initialisation complexe des champs statiques lors du chargement de la classe.
- Classes internes statiques: Pour regrouper logiquement des classes liées ou pour les utiliser comme classes auxiliaires sans référence à un objet externe.
Exemples:
public class MyClass {
// Champ statique (constante)
public static final int MAX_COUNT = 100;
// Champ statique (compteur d'instances)
private static int instanceCount = 0;
// Bloc d'initialisation statique
static {
System.out.println("MyClass chargée.");
}
public MyClass() {
instanceCount++;
}
// Méthode statique
public static int getInstanceCount() {
return instanceCount;
}
// Classe interne statique
public static class StaticInnerClass {
public void doSomething() {
System.out.println("Dans la classe interne statique.");
}
}
}
Tableau comparatif des membres statiques et non-statiques:
| Caractéristique | Membre statique | Membre non-statique |
|---|---|---|
| Lien avec l'objet | Appartient à la classe | Appartient à l'instance |
| Accès | Via le nom de la classe ou un objet | Via l'objet |
| Initialisation | Lors du chargement de la classe | Lors de la création de l'objet |
| Mémoire | Allouée une seule fois | Allouée pour chaque objet |