Perbedaan antara class variables
dan instance
variabel, hanyalah masalah who knows what?
.
An instance variable
hanya 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 variable
di 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
}
numberOfPersons
dideklarasikan static
yang merupakan kata kunci untuk distingush antara class variables
dan instance variabes
. Variabel dideklarasikan seperti yang lain dalam definisi kelas. Tetapi static
sinyal kata kunci, bahwa itu berbeda.
firstName
, lastName
adalah 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