Statyczne słowo kluczowe (niezależnie od tego, czy jest to zmienna, czy blok) należy do klasy. Więc kiedy klasa jest wywoływana, te zmienne lub bloki są wykonywane. Więc większość inicjalizacji zostanie wykonana za pomocą słowa kluczowego static. Ponieważ należy do samej klasy, klasa może uzyskać do niej bezpośredni dostęp, bez tworzenia instancji klasy.
Weźmy przykład: istnieje klasa butów, w której istnieje kilka zmiennych, takich jak kolor, rozmiar, marka itp. A tutaj, jeśli firma produkująca obuwie ma tylko jedną markę, powinniśmy zainicjować ją jako zmienną statyczną. Tak więc, gdy wywoływana jest klasa obuwia i produkowane są różne typy butów (tworząc instancję tej klasy), wówczas kolor i rozmiar będą zapamiętywać za każdym razem, gdy zostanie utworzony nowy but, ale tutaj marka jest wspólną własnością wszystkich butów, tak, że choć raz zajmie pamięć, bez względu na to, ile butów jest produkowanych.
Przykład:
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("=================");
}
}