Variable statique dans Java

La statique peut รชtre :

  1. Variables statiques
  2. Mรฉthodes statiques
  3. 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


Java Mรฉthodes et variables statiques

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.


Java Mรฉthodes et variables statiques

ร‰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

Rรฉsumez cet article avec :