Méthode statique Java, variable et bloc avec exemple

Table des matières:

Anonim

La statique peut être:

  1. Variables statiques
  2. Méthodes statiques
  3. Blocs statiques de code.

Regardons d'abord les variables statiques et les méthodes statiques.

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

La variable statique en Java est une variable appartenant à 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>. 

Qu'est-ce que la méthode statique en Java?

La méthode statique en 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 appeler une méthode non statique à partir de celle-ci.
  • Une méthode statique est accessible directement par le nom de la classe et n'a besoin d'aucun objet
  • Une méthode statique ne peut en aucun cas faire référence à des mots clés "this" ou "super"

Syntaxe:

< class-name>. 

Remarque: 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

Démo de classe publique {public static void main (String args []) {Student s1 = nouvel étudiant ();s1.showData ();Student s2 = nouvel étudiant ();s2.showData ();//Student.b++;//s1.showData ();}}élève de la classe {int a; // initialisé à zérostatic int b; // initialisé à zéro uniquement lorsque la classe est chargée et non pour chaque objet créé.Étudiant(){// Constructeur incrémentant la variable statique bb ++;}public void showData () {System.out.println ("Valeur de a =" + a);System.out.println ("Valeur de b =" + b);}// public static void increment () {// a ++;//}}

Étape 2) Enregistrez et compilez le code. Exécutez le code en tant que java Demo .
Étape 3) Affichage de la sortie attendue ci-dessous


Le diagramme suivant montre comment les variables de référence et les objets sont créés et 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 ClassName.Variable_Name . Décommentez les lignes 7 et 8. Enregistrez, compilez et exécutez. Observez la sortie.

Value of a = 0Value of b = 1Value of a = 0Value of b = 2Value of a = 0Value 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 =? En effet, il n'est pas possible d'accéder à la variable d'instance " a " à partir de la méthode de classe statique Java " incrément ".

Qu'est-ce que Static Block en Java?

Le bloc statique est un bloc d'instructions à l'intérieur d'une classe Java qui sera exécuté lorsqu'une classe est chargée pour la première fois dans la JVM. Un bloc statique aide à initialiser les membres de données statiques , tout comme les constructeurs aident à initialiser les membres d'instance.

class Test{static {//Code goes here}}

Le programme suivant est l'exemple du bloc statique java.

Exemple: Comment accéder au bloc statique

Démo de classe publique {static int a;static int b;statique {a = 10;b = 20;}public static void main (String args []) {System.out.println ("Valeur de a =" + a);System.out.println ("Valeur de b =" + b);}}

vous obtiendrez la sortie suivante du programme.

Value of a = 10Value of b = 20