La parola chiave statica (sia che si tratti di una variabile o di un blocco) appartiene alla classe. Quindi, quando viene chiamata la classe, queste variabili o blocchi vengono eseguiti. Quindi la maggior parte dell'inizializzazione verrà eseguita con l'aiuto della parola chiave statica. Poiché appartiene alla classe stessa, la classe può accedervi direttamente, senza creare un'istanza della classe.
Facciamo un esempio, c'è una classe di scarpe in cui ci sono diverse variabili come colore, taglia, marca, ecc ... E qui se l'azienda produttrice di scarpe ha un solo marchio, dovremmo inizializzarlo come variabile statica. Quindi, quando viene chiamata la classe di scarpe e vengono prodotti diversi tipi di scarpe (creando un'istanza della classe) in quel momento il colore e le dimensioni occuperanno la memoria ogni volta che viene creata una nuova scarpa, ma qui il marchio è una proprietà comune per tutte le scarpe, in modo che occupi la memoria per una volta, indipendentemente dal numero di scarpe prodotte.
Esempio:
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("=================");
}
}