Variable statique dans Java

โšก Rรฉsumรฉ intelligent

Variable statique dans Java Cette variable appartient ร  la classe et non ร  un objet ; elle est initialisรฉe une seule fois lors du chargement de la classe. Une copie unique et partagรฉe sert ร  toutes les instances, accessibles directement par le nom de la classe sans crรฉation d'objet.

  • ๐Ÿ“ฆ Variable statique : Appartient ร  la classe, partage une seule copie entre toutes les instances, initialisรฉe une seule fois au chargement.
  • โš™๏ธ Mรฉthode statique : Appartient ร  la classe, ne peut accรฉder qu'aux donnรฉes statiques et ignore this/super.
  • ๐Ÿงฑ Bloc statique : S'exรฉcute une seule fois lors du chargement de la classe afin d'initialiser les membres de donnรฉes statiques.
  • ๐Ÿ”— Accรจs: Accรฉdez directement aux membres statiques via ClassName.member sans objet.
  • โ›” Restriction: Une mรฉthode statique ne peut pas rรฉfรฉrencer directement des variables non statiques (d'instance).

Variable statique dans Java

La statique peut รชtre :

  1. Variables statiques
  2. Mรฉthodes statiques
  3. Blocs statiques de Code.

Examinons d'abord les variables statiques et les mรฉthodes statiques.

Qu'est-ce qu'une variable statique dans Java?

Variable statique dans Java Une variable statique appartient ร  la classe et est initialisรฉe une seule fois, au dรฉbut de l'exรฉcution. Elle appartient ร  la classe et non ร  l'objet (instance). Les variables statiques sont initialisรฉes en premier, avant 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

FAQ

Une variable statique appartient ร  la classe et est partagรฉe par tous les objets. Une variable d'instance appartient ร  chaque objet et possรจde une copie distincte pour chaque instance, initialisรฉe lors de la crรฉation de l'objet.

Non. Une mรฉthode statique ne peut accรฉder qu'ร  des donnรฉes statiques et ร  d'autres mรฉthodes statiques. Faire rรฉfรฉrence ร  une variable non statique (d'instance) depuis un contexte statique provoque une erreur de compilation, car aucun objet n'existe encore.

Un bloc statique s'exรฉcute une seule fois, lors du premier chargement de la classe dans la JVM, avant la crรฉation de tout objet ou l'exรฉcution de la mรฉthode principale. Il sert ร  initialiser les membres de donnรฉes statiques.

L'IA peut analyser l'utilisation d'un champ ou d'une mรฉthode et recommander des solutions statiques lorsque les donnรฉes sont partagรฉes entre toutes les instances ou lorsqu'aucun รฉtat d'instance n'est nรฉcessaire.ping Les dรฉveloppeurs รฉvitent les objets inutiles et rรฉduisent l'utilisation de la mรฉmoire.

Oui. L'analyse assistรฉe par l'IA peut signaler les รฉtats statiques modifiables qui causent des problรจmes de sรฉcuritรฉ des threads, des dรฉpendances globales cachรฉes ou des difficultรฉs de test, et suggรฉrer des alternatives plus sรปres telles que les champs d'instance ou l'injection de dรฉpendances.

Rรฉsumez cet article avec :