Java – variable statique avec exemple

, Author

Une variable statique est commune à toutes les instances (ou objets) de la classe car c’est une variable de niveau classe. En d’autres termes, vous pouvez dire qu’une seule copie de la variable statique est créée et partagée entre toutes les instances de la classe. L’allocation de mémoire pour de telles variables ne se produit qu’une seule fois lorsque la classe est chargée dans la mémoire.
Comme les variables nous pouvons avoir un bloc statique, une méthode statique et une classe statique, pour lire à leur sujet référez-vous : mot-clé static en java.

Syntaxe des variables statiques

mot-clé static suivi du type de données, suivi du nom de la variable.

static data_type variable_name;

Comme j’ai mentionné ci-dessus que les variables statiques sont partagées entre toutes les instances de la classe, elles sont utiles lorsque nous devons faire de la gestion de mémoire. Dans certains cas, nous voulons avoir une valeur commune pour toutes les instances comme la variable globale alors il est beaucoup mieux de les déclarer statiques car cela peut économiser de la mémoire (car une seule copie est créée pour les variables statiques).

Laissons comprendre cela avec un exemple:

Variable statique exemple en Java

class VariableDemo{ static int count=0; public void increment() { count++; } public static void main(String args) { VariableDemo obj1=new VariableDemo(); VariableDemo obj2=new VariableDemo(); obj1.increment(); obj2.increment(); System.out.println("Obj1: count is="+obj1.count); System.out.println("Obj2: count is="+obj2.count); }}

Sortie:

Obj1: count is=2Obj2: count is=2

Comme vous pouvez le voir dans l’exemple ci-dessus que les deux objets partagent une même copie de la variable statique c’est pourquoi ils ont affiché la même valeur de compte.

Exemple 2 : On peut accéder à une variable statique directement dans une méthode statique

class JavaExample{ static int age; static String name; //This is a Static Method static void disp(){ System.out.println("Age is: "+age); System.out.println("Name is: "+name); } // This is also a static method public static void main(String args) { age = 30; name = "Steve"; disp(); }}

Sortie:

Age is: 30Name is: Steve

Initialisation des variables statiques

  1. Les variables statiques sont initialisées lorsque la classe est chargée.
  2. Les variables statiques sont initialisées avant la création de tout objet de cette classe.
  3. Les variables statiques sont initialisées avant l’exécution de toute méthode statique de la classe.

Les valeurs par défaut des variables statiques et non statiques sont les mêmes.
Ingers primitifs(long, short etc) : 0
Valeurs flottantes primitives(float, double) : 0,0
booléen : false
références d’objets : null

Variables statiques finales

Les variables statiques finales sont des constantes. Regardons le code ci-dessous :

public class MyClass{ public static final int MY_VAR=27;}

Note : Le nom de la variable constante doit être en majuscules ! vous pouvez utiliser le trait de soulignement (_) entre.
1) Le code ci-dessus s’exécutera dès que la classe MyClass sera chargée, avant que la méthode statique soit appelée et même avant que toute variable statique puisse être accédée.
2) La variable MY_VAR est publique ce qui signifie que toute classe peut l’utiliser. C’est une variable statique donc vous n’aurez pas besoin d’un objet de la classe pour y accéder. C’est final donc la valeur de cette variable ne peut jamais être changée dans la classe actuelle ou dans n’importe quelle classe.

Points clés:
La variable finale a toujours besoin d’être initialisée, si vous ne l’initialisez pas, elle lancerait une erreur de compilation. regardez l’exemple ci-dessous-

public class MyClass{ public static final int MY_VAR;}

Error: variable MY_VAR might not have been initialized

.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.