logo

Mot-clé statique Java

  1. Variable statique
  2. Programme du compteur sans variable statique
  3. Programme du compteur à variable statique
  4. Méthode statique
  5. Restrictions pour la méthode statique
  6. Pourquoi la méthode principale est-elle statique ?
  7. Bloc statique
  8. Pouvons-nous exécuter un programme sans méthode principale ?

Le mot-clé statique dans Java est principalement utilisé pour la gestion de la mémoire. Nous pouvons appliquer un mot-clé statique avec variables , méthodes, blocs et classes imbriquées . Le mot-clé static appartient à la classe plutôt qu'à une instance de la classe.

garniture javascript

La statique peut être :

  1. Variable (également appelée variable de classe)
  2. Méthode (également appelée méthode de classe)
  3. Bloc
  4. Classe imbriquée
Statique en Java

1) Variable statique Java

Si vous déclarez une variable comme statique, elle est appelée variable statique.

  • La variable statique peut être utilisée pour faire référence à la propriété commune de tous les objets (qui n'est pas unique pour chaque objet), par exemple le nom de l'entreprise des employés, le nom du collège des étudiants, etc.
  • La variable statique n'obtient de la mémoire qu'une seule fois dans la zone de classe au moment du chargement de la classe.

Avantages de la variable statique

Cela fait votre programme mémoire efficace (c'est-à-dire que cela économise de la mémoire).

Comprendre le problème sans variable statique

 class Student{ int rollno; String name; String college='ITS'; } 

Supposons qu'il y ait 500 étudiants dans mon collège, désormais tous les membres des données d'instance recevront de la mémoire à chaque fois que l'objet sera créé. Tous les étudiants ont leur numéro de rôle et leur nom uniques, donc le membre de données d'instance est bon dans ce cas. Ici, « collège » fait référence à la propriété commune de tous. objets . Si nous le rendons statique, ce champ n'obtiendra la mémoire qu'une seule fois.

La propriété statique Java est partagée avec tous les objets.

Exemple de variable statique

 //Java Program to demonstrate the use of static variable class Student{ int rollno;//instance variable String name; static String college ='ITS';//static variable //constructor Student(int r, String n){ rollno = r; name = n; } //method to display the values void display (){System.out.println(rollno+' '+name+' '+college);} } //Test class to show the values of objects public class TestStaticVariable1{ public static void main(String args[]){ Student s1 = new Student(111,'Karan'); Student s2 = new Student(222,'Aryan'); //we can change the college of all objects by the single line of code //Student.college='BBDIT'; s1.display(); s2.display(); } } 
Testez-le maintenant

Sortir:

 111 Karan ITS 222 Aryan ITS 

Programme du compteur sans variable statique

Dans cet exemple, nous avons créé une variable d'instance nommée count qui est incrémentée dans le constructeur. Puisque la variable d'instance obtient la mémoire au moment de la création de l'objet, chaque objet aura la copie de la variable d'instance. S'il est incrémenté, il ne reflétera pas les autres objets. Ainsi, chaque objet aura la valeur 1 dans la variable count.

 //Java Program to demonstrate the use of an instance variable //which get memory each time when we create an object of the class. class Counter{ int count=0;//will get memory each time when the instance is created Counter(){ count++;//incrementing value System.out.println(count); } public static void main(String args[]){ //Creating objects Counter c1=new Counter(); Counter c2=new Counter(); Counter c3=new Counter(); } } 
Testez-le maintenant

Sortir:

comparaison du lion et du tigre
 1 1 1 

Programme de compteur par variable statique

Comme nous l'avons mentionné ci-dessus, la variable statique n'obtiendra la mémoire qu'une seule fois, si un objet modifie la valeur de la variable statique, il conservera sa valeur.

 //Java Program to illustrate the use of static variable which //is shared with all objects. class Counter2{ static int count=0;//will get memory only once and retain its value Counter2(){ count++;//incrementing the value of static variable System.out.println(count); } public static void main(String args[]){ //creating objects Counter2 c1=new Counter2(); Counter2 c2=new Counter2(); Counter2 c3=new Counter2(); } } 
Testez-le maintenant

Sortir:

 1 2 3 

2) Méthode statique Java

Si vous appliquez un mot-clé statique avec une méthode, on parle de méthode statique.

  • Une méthode statique appartient à la classe plutôt qu'à l'objet d'une classe.
  • Une méthode statique peut être invoquée sans qu’il soit nécessaire de créer une instance de classe.
  • Une méthode statique peut accéder à des données membres statiques et en modifier la valeur.

Exemple de méthode statique

 //Java Program to demonstrate the use of a static method. class Student{ int rollno; String name; static String college = 'ITS'; //static method to change the value of static variable static void change(){ college = 'BBDIT'; } //constructor to initialize the variable Student(int r, String n){ rollno = r; name = n; } //method to display values void display(){System.out.println(rollno+' '+name+' '+college);} } //Test class to create and display the values of object public class TestStaticMethod{ public static void main(String args[]){ Student.change();//calling change method //creating objects Student s1 = new Student(111,'Karan'); Student s2 = new Student(222,'Aryan'); Student s3 = new Student(333,'Sonoo'); //calling display method s1.display(); s2.display(); s3.display(); } } 
Testez-le maintenant
 Output:111 Karan BBDIT 222 Aryan BBDIT 333 Sonoo BBDIT 

Un autre exemple de méthode statique qui effectue un calcul normal

 //Java Program to get the cube of a given number using the static method class Calculate{ static int cube(int x){ return x*x*x; } public static void main(String args[]){ int result=Calculate.cube(5); System.out.println(result); } } 
Testez-le maintenant
 Output:125 

Restrictions pour la méthode statique

Il existe deux restrictions principales pour la méthode statique. Ils sont:

itérateur java pour la carte
  1. La méthode statique ne peut pas utiliser de données membres non statiques ni appeler directement une méthode non statique.
  2. this et super ne peuvent pas être utilisés dans un contexte statique.
 class A{ int a=40;//non static public static void main(String args[]){ System.out.println(a); } } 
Testez-le maintenant
 Output:Compile Time Error 

Q) Pourquoi la méthode principale Java est-elle statique ?

Réponse) C'est parce que l'objet n'est pas obligé d'appeler une méthode statique. S'il s'agissait d'une méthode non statique, JVM crée d'abord un objet, puis appelle la méthode main() qui résoudra le problème de l'allocation de mémoire supplémentaire.


3) Bloc statique Java

  • Est utilisé pour initialiser les données membres statiques.
  • Il est exécuté avant la méthode principale au moment du chargement de la classe.

Exemple de bloc statique

 class A2{ static{System.out.println('static block is invoked');} public static void main(String args[]){ System.out.println('Hello main'); } } 
Testez-le maintenant
 Output:static block is invoked Hello main 

Q) Pouvons-nous exécuter un programme sans la méthode main() ?

Réponse) Non, l'un des moyens était le bloc statique, mais c'était possible jusqu'au JDK 1.6. Depuis le JDK 1.7, il n'est plus possible d'exécuter une classe Java sans le méthode principale .

 class A3{ static{ System.out.println('static block is invoked'); System.exit(0); } } 
Testez-le maintenant

Sortir:

tutoriel SS
 static block is invoked 

Depuis JDK 1.7 et supérieur, le résultat serait :

 Error: Main method not found in class A3, please define the main method as: public static void main(String[] args) or a JavaFX application class must extend javafx.application.Application