Statik anahtar kelime (ister değişken ister blok olsun) sınıfa aittir. Yani sınıf çağrıldığında, bu değişkenler veya bloklar çalıştırılır. Bu nedenle, başlatma işlemlerinin çoğu statik anahtar kelime yardımıyla yapılacaktır. Sınıfın kendisine ait olduğu için, sınıfın bir örneğini oluşturmadan ona doğrudan erişebilir.
Bir örnek verelim, Renk, beden, marka vb. Gibi çeşitli değişkenlerin olduğu bir ayakkabı sınıfı var ... Ve burada ayakkabı üreten firmanın tek bir markası varsa, onu statik bir değişken olarak başlatmalıyız. Dolayısıyla, ayakkabı sınıfı çağrıldığında ve farklı ayakkabı türleri üretildiğinde (sınıfın bir örneği oluşturularak) o sırada renk ve beden hafızayı her yeni ayakkabı oluşturulduğunda kaplayacaktır, ancak burada marka tüm ayakkabılar için ortak bir özelliktir, böylece kaç ayakkabı üretilirse üretilsin bir kez hafızayı kaplayacak.
Misal:
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("=================");
}
}