English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Fichier statique/Les variables appartiennent à la classe, elles seront chargées en mémoire avec la classe. Vous pouvez les appeler sans créer d'objet (en utilisant le nom de la classe comme référence). Il n'y a qu'une seule copie du champ statique disponible dans toute la classe, c'est-à-dire, la valeur du champ statique est la même pour tous les objets. Vous pouvez définir un champ statique en utilisant le mot-clé static.
public class Sample{ static int num = 50; public void demo(){ System.out.println("Valeur de num dans la méthode demo ");+ Sample.num); } public static void main(String args[]){ System.out.println("Valeur de num dans la méthode main ");+ Sample.num); new Sample().demo(); } }
Output Result
Valeur de num dans la méthode main 50 Valeur de num dans la méthode demo 50
Si vous déclarez une variable statique dans une classe, et si elle n'est pas initialisée, comme pour une variable d'instance, le compilateur l'initialisera avec la valeur par défaut dans le constructeur par défaut.
public class Sample{ static int num; static String str; static float fl; static boolean bool; public static void main(String args[]){ System.out.println(Sample.num); System.out.println(Sample.str); System.out.println(Sample.fl); System.out.println(Sample.bool); } }
Output Result
0 null 0.0 false
Cependant, si vous déclarez une variable d'instance statique, et que le compilateur Java ne l'initialisera pas dans le constructeur par défaut, vous devez initialiser les variables statiques et finales. Si vous ne compilez pas, une erreur sera générée.
public class Sample{ final static int num; final static String str; final static float fl; final static boolean bool; public static void main(String args[]){ System.out.println(Sample.num); System.out.println(Sample.str); System.out.println(Sample.fl); System.out.println(Sample.bool); } }
Sample.java:2: erreur : variable num non initialisée dans le constructeur par défaut final static int num; ^ Sample.java:3: erreur : variable str non initialisée dans le constructeur par défaut final static String str; ^ Sample.java:4: error: variable fl not initialized in the default constructor final static float fl; ^ Sample.java:5: error: variable bool not initialized in the default constructor final static boolean bool; ^ 4 errors
You cannot assign a value to a final variable from a constructor-
public class Sample{ final static int num; Sample(){ num =;100; } }
Output Result
Sample.java:4: error: cannot assign a value to final variable num num =;100; ^ 1 error
The only way to initialize a static final variable other than the declaration statement is through a static block.
AStatic blockIs a block of code using the static keyword. Typically, these are used to initialize static members. The JVM executes static blocks before the main method during class loading.
public class Sample{ final static int num; final static String str; final static float fl; final static boolean bool; static{ num =;100; str = "krishna"; fl =;100.25f; bool = true; } public static void main(String args[]){ System.out.println(Sample.num); System.out.println(Sample.str); System.out.println(Sample.fl); System.out.println(Sample.bool); } }
Output Result
100 krishna 100.25 true