Que signifie statique en Java
-
Utilisation du mot-clé
static
avec les variables membres en Java -
Utilisation du mot-clé
static
avec les fonctions membres en Java -
Utilisation du mot-clé
static
dans un bloc en Java
En langage Java, static
est un mot-clé qui peut avoir son usage à divers endroits. Le mot-clé static
est utilisé avec une variable membre, des fonctions membres, des blocs et des classes imbriquées. L’application de mots-clés statiques est là où nous ne voulons pas créer une nouvelle instance à chaque fois. Au lieu de cela, nous l’utilisons aux endroits où la copie unique est partagée au sein de la classe. Les variables statiques sont stockées dans la mémoire de tas, qui est un type de mémoire permanente.
Utilisation du mot-clé static
avec les variables membres en Java
Le bloc de code explique en quoi la variable statique est différente des variables non statiques.
public class StaticVariableUsage {
public static void main(String[] args) {
InnerClass in = new InnerClass();
InnerClass in1 = new InnerClass();
InnerClass2 in2 = new InnerClass2();
InnerClass2 in3 = new InnerClass2();
}
static class InnerClass {
static int var4 = 0;
InnerClass() {
var4++;
System.out.println("static variable : " + var4);
}
}
static class InnerClass2 {
int var5 = 0;
InnerClass2() {
var5++;
System.out.println("non-static variable : " + var5);
}
}
}
Dans le bloc de code ci-dessus, il y a une classe publique nommée la classe StaticVariableUsage
. Il a une méthode statique et deux classes internes. La classe interne nommée InnerClass
a une variable entière statique var4
et est initiée avec zéro. La classe a un constructeur qui incrémente la variable entière statique et imprime sa valeur.
Une autre classe interne porte le nom InnerClass2
et contient une variable non statique var5
. Cette classe a également un constructeur qui incrémente la variable non statique et imprime sa valeur.
Passant à la méthode main
, ici, InnerClass
et InnerClass2
sont instanciés deux fois. L’analyse peut être dérivée lorsque l’appel du constructeur se produit, un objet est instancié avec un nouveau mot-clé.
Comme le dit la sortie, la variable statique est initiée et est préservée. La valeur est incrémentée pour la première fois et imprime la valeur comme 1
. La prochaine fois, lorsque nous créons une autre instance, le constructeur est à nouveau appelé. Mais la variable statique n’est pas réinitialisée à zéro à nouveau. Au lieu de cela, la valeur précédemment stockée est incrémentée, ce qui donne à la variable statique la valeur deux.
De même, lorsqu’une instance de InnerClass2
est créée, chaque fois que la variable non statique est initialisée à la valeur 0
. Il imprime donc la valeur 1
en sortie les deux fois.
static variable : 1
static variable : 2
non-static variable : 1
non-static variable : 1
Utilisation du mot-clé static
avec les fonctions membres en Java
Nous avons une classe externe nommée StaticFunctionUsage
qui contient l’autre classe interne dans la classe ci-dessous. InnerClass
a une fonction statique. Et une autre classe interne nommée InnerClass1
a une méthode non statique.
Maintenant, en passant à la méthode main
, on voit que la fonction statique est directement accessible avec le nom de la classe. Nous n’avons pas à instancier l’objet InnerClass
. De même, lorsque nous essayons d’accéder à la fonction non statique function1
avec le nom de la classe, une erreur de compilation est renseignée. Si nous voulons accéder à la fonction, l’instance de classe doit être créée, que nous avons créée avec le nom de variable in
. L’utilisation de la variable est d’appeler function1
et est une instruction valide.
public class StaticFunctionUsage {
public static void main(String[] args) {
InnerClass.function();
// InnerClass1.function1();
InnerClass1 in = new InnerClass1();
in.function1();
}
static class InnerClass {
static void function() {
System.out.println("In the static function");
}
}
static class InnerClass1 {
void function1() {
System.out.println("In the non-static function");
}
}
}
La sortie du bloc de code ci-dessus est comme ci-dessous.
In the static function
In the non-static function
Utilisation du mot-clé static
dans un bloc en Java
L’utilisation de blocs statiques est d’initialiser des variables statiques. L’exécution du programme commence par la méthode main
. Si un bloc statique est présent dans une classe, il s’exécute avant l’exécution de la méthode principale.
Vous trouverez ci-dessous le code expliquant le bloc statique.
public class StaticBlock {
static {
System.out.println("In the static block");
}
public static void main(String[] args) {
System.out.println("In the main method");
}
}
La sortie du code est comme ci-dessous. Comme nous pouvons le voir, l’instruction dans le bloc statique est d’abord exécutée.
In the static block
In the main method
Rashmi is a professional Software Developer with hands on over varied tech stack. She has been working on Java, Springboot, Microservices, Typescript, MySQL, Graphql and more. She loves to spread knowledge via her writings. She is keen taking up new things and adopt in her career.
LinkedIn