Variable statique dans Java
- Variables statiques
- Mรฉthodes statiques
- Blocs de code statiques.
Examinons d'abord les variables statiques et les mรฉthodes statiques.
Qu'est-ce qu'une variable statique dans Java?
Variable statique dans Java est une variable qui appartient ร la classe et initialisรฉe une seule fois au dรฉbut de l'exรฉcution. C'est une variable qui appartient ร la classe et non ร l'objet (instance). Les variables statiques ne sont initialisรฉes qu'une seule fois, au dรฉbut de l'exรฉcution. Ces variables seront initialisรฉes en premier, avant l'initialisation de toute variable d'instance.
- Une seule copie ร partager par toutes les instances de la classe
- Une variable statique est accessible directement par le nom de la classe et n'a besoin d'aucun objet
syntaxe:
<class-name>.<variable-name>
Qu'est-ce que la mรฉthode statique dans Java?
Mรฉthode statique dans Java est une mรฉthode qui appartient ร la classe et non ร l'objet. Une mรฉthode statique ne peut accรฉder qu'aux donnรฉes statiques. C'est une mรฉthode qui appartient ร la classe et non ร l'objet (instance). Une mรฉthode statique ne peut accรฉder qu'aux donnรฉes statiques. Il ne peut pas accรฉder aux donnรฉes non statiques (variables d'instance).
- Une mรฉthode statique ne peut appeler que dโautres mรฉthodes statiques et ne peut pas en appeler une mรฉthode non statique.
- Une mรฉthode statique est accessible directement par le nom de la classe et ne nรฉcessite aucun objet
- Une mรฉthode statique ne peut en aucun cas faire rรฉfรฉrence aux mots-clรฉs ยซ this ยป ou ยซ super ยป
syntaxe:
<class-name>.<method-name>
ร noter: La mรฉthode main est statique, car elle doit รชtre accessible pour quโune application sโexรฉcute, avant toute instanciation.
Apprenons les nuances des mots-clรฉs statiques en faisant quelques exercices !
Exemple : Comment appeler des variables et des mรฉthodes statiques
รtape 1) Copiez le code suivant dans un รฉditeur
public class Demo{
public static void main(String args[]){
Student s1 = new Student();
s1.showData();
Student s2 = new Student();
s2.showData();
//Student.b++;
//s1.showData();
}
}
class Student {
int a; //initialized to zero
static int b; //initialized to zero only when class is loaded not for each object created.
Student(){
//Constructor incrementing static variable b
b++;
}
public void showData(){
System.out.println("Value of a = "+a);
System.out.println("Value of b = "+b);
}
//public static void increment(){
//a++;
//}
}
รtape 2) Enregistrez et compilez le code. Exรฉcutez le code comme, Dรฉmo Java.
รtape 3) Le rรฉsultat attendu est affichรฉ ci-dessous
Le diagramme suivant montre comment les variables et les objets de rรฉfรฉrence sont crรฉรฉs et comment les variables statiques sont accessibles par les diffรฉrentes instances.
รtape 4) Il est possible d'accรฉder ร une variable statique depuis l'extรฉrieur de la classe en utilisant la syntaxe NomClasse.Nom_Variable. Dรฉcommentez les lignes nยฐ7 et 8. Enregistrez, compilez et exรฉcutez. Observez la sortie.
Value of a = 0 Value of b = 1 Value of a = 0 Value of b = 2 Value of a = 0 Value of b = 3
รtape 5) Dรฉcommentez les lignes 25,26 et 27. Enregistrez, compilez et exรฉcutez.
error: non-static variable a cannot be referenced from a static context a++;
รtape 6) Erreur = ? C'est parce qu'il n'est pas possible d'accรฉder ร la variable d'instance "a" de la mรฉthode de classe statique Java "incrรฉment" .
Qu'est-ce que le bloc statique dans Java?
Le bloc statique est un bloc d'instructions ร l'intรฉrieur d'un Java classe qui sera exรฉcutรฉe lorsqu'une classe est chargรฉe pour la premiรจre fois dans le JVM. A le bloc statique aide ร initialiser les donnรฉes membres statiques, tout comme les constructeurs aident ร initialiser les membres de l'instance.
class Test{
static {
//Code goes here
}
}
Le programme suivant est l'exemple de bloc statique Java.
Exemple : Comment accรฉder au bloc statique
public class Demo {
static int a;
static int b;
static {
a = 10;
b = 20;
}
public static void main(String args[]) {
System.out.println("Value of a = " + a);
System.out.println("Value of b = " + b);
}
}
vous obtiendrez la sortie suivante du programme.
Value of a = 10 Value of b = 20


