Le mot-clé statique (qu'il s'agisse d'une variable ou d'un bloc) appartient à la classe. Ainsi, lorsque la classe est appelée, ces variables ou blocs sont exécutés. La plupart de l'initialisation se fera donc à l'aide d'un mot-clé statique. Comme il appartient à la classe elle-même, la classe peut y accéder directement, sans créer une instance de la classe.
Prenons un exemple, il existe une classe de chaussures dans laquelle il y a plusieurs variables comme la couleur, la taille, la marque etc ... Et ici, si l'entreprise de fabrication de chaussures n'a qu'une seule marque, nous devrions l'initialiser en tant que variable statique. Ainsi, lorsque la classe de chaussures est appelée et que différents types de chaussures sont fabriqués (en créant une instance de la classe) à ce moment-là, la couleur et la taille occuperont la mémoire chaque fois qu'une nouvelle chaussure est créée, mais ici la marque est une propriété commune à toutes les chaussures, afin qu'il occupe la mémoire pour une fois, quel que soit le nombre de chaussures fabriquées.
Exemple:
class Shoe {
int size;
String colour;
static String brand = "Nike";
public Shoe(int size, String colour) {
super();
this.size = size;
this.colour = colour;
}
void displayShoe() {
System.out.printf("%-2d %-8s %s %n",size,colour, brand);
}
public static void main(String args[]) {
Shoe s1 = new Shoe(7, "Blue");
Shoe s2 = new Shoe(8, "White");
System.out.println("=================");
s1.displayShoe();
s2.displayShoe();
System.out.println("=================");
}
}