Perbedaan antara class variablesdan instancevariabel, hanyalah masalah who knows what?.
An instance variablehanya diketahui (= terikat ) pada instance konkret - maka namanya.
public class Person {
private String firstName;
private String lastName;
[...]
}
Definisi kelas seperti cetak biru untuk membangun objek beton . Mungkin poin ini sedikit membingungkan Anda. Tetapi dengan menulis seperti ini, setiap variabel akan terikat pada objek konkretnya: misalnya Setiap orang memiliki Nama depannya sendiri
A class variabledi sisi lain adalah - seperti namanya - diketahui oleh setiap anggota kelas; atau secara teknis: Diketahui / terikat di tingkat kelas . Contoh khas adalah penghitung dari berapa banyak objek yang telah Anda buat - meskipun itu adalah contoh yang sangat bermasalah; tapi itu tidak masalah pada tahap awal ini.
public class Person {
private String firstName;
private String lastName;
[...]
static int numberOfPersons = 0
}
numberOfPersonsdideklarasikan staticyang merupakan kata kunci untuk distingush antara class variablesdan instance variabes. Variabel dideklarasikan seperti yang lain dalam definisi kelas. Tetapi staticsinyal kata kunci, bahwa itu berbeda.
firstName, lastNameadalah variabel instan dan terikat pada instance konkret itu
numberOfPersons terikat ke kelas, sehingga setiap instance dapat mengakses variabel ini.
tl; dr
Tempat variabel didefinisikan adalah definisi kelas.
Variabel kelas dikenal di / terikat ke tingkat kelas, yaitu setiap instance konkret memiliki akses ke sana. Untuk mendefinisikan variabel kelas, Anda menggunakan kata kunci static.
Variabel Instance hanya dikenal pada tingkat instance. Anda mendefinisikannya tanpastatic kata kunci.
Dokumentasi lebih lanjut untuk Java ada di sini