Kata kunci statis (apakah itu variabel atau blok) adalah milik kelas. Jadi ketika kelas dipanggil, variabel atau blok ini dijalankan. Jadi sebagian besar inisialisasi akan dilakukan dengan bantuan kata kunci statis. Karena ini adalah milik kelas itu sendiri, kelas tersebut dapat langsung mengaksesnya, tanpa membuat instance kelas.
Mari kita ambil contoh, Ada kelas sepatu yang didalamnya terdapat beberapa variabel seperti warna, ukuran, merek dll. Dan disini jika perusahaan pembuat sepatu hanya mempunyai satu merek maka kita harus menginisialisasi sebagai variabel statis. Jadi, ketika kelas sepatu dipanggil dan berbagai jenis sepatu diproduksi (dengan membuat instance kelas) pada saat itu warna dan ukuran akan menempati memori setiap kali sepatu baru dibuat, tetapi di sini merek adalah properti bersama untuk semua sepatu, sehingga akan menempati memori sekali tidak peduli berapa banyak sepatu yang diproduksi.
Contoh:
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("=================");
}
}