Arasındaki fark class variables
ve instance
değişkenler, sadece bir sorudur who knows what?
.
An instance variable
yalnızca somut örnekle bilinir (= bağlı ) - dolayısıyla adı.
public class Person {
private String firstName;
private String lastName;
[...]
}
Bir sınıfın tanımı, somut nesneler inşa etmek için bir taslak gibidir . Belki de bu nokta sizi biraz karıştırıyor . Ancak bu şekilde yazıldığında, her değişken kendi somut nesnesine bağlı olacaktır: örneğin, her insanın kendi adı vardır
A class variable
ise - adından da anlaşılacağı gibi - bir sınıfın her üyesi tarafından bilinir; veya teknik olarak: Sınıf düzeyinde bilinir / sınırlandırılır . Tipik örnek, kaç tane nesne yarattığınızın bir sayacıdır - çok sorunlu bir örnek olmasına rağmen; ama bu erken aşamada bu önemli değil.
public class Person {
private String firstName;
private String lastName;
[...]
static int numberOfPersons = 0
}
numberOfPersons
ve static
arasında ayrım yapmak için anahtar kelime olan ilan edilir . Değişken, sınıf tanımındaki diğerleri gibi bildirilir. Ama anahtar kelime farklı olduğunu işaret ediyor.class variables
instance variabes
static
firstName
, lastName
Olan , örnek değişkenler ve somut örneğine bağlı
numberOfPersons
sınıfa bağlıdır, böylece her örnek bu değişkene erişebilir.
tl; Dr.
Değişkenlerin tanımlandığı yer sınıf tanımıdır.
Sınıf değişkenleri sınıf düzeyinde bilinir / sınırlıdır, yani her somut örneğin buna erişimi vardır. Bir sınıf değişkeni tanımlamak için anahtar kelimeyi kullanırsınız static
.
Örnek değişkenleri yalnızca örnek düzeyinde bilinir. Bunları static
anahtar kelime olmadan tanımlarsınız .
Java ile ilgili diğer belgeler burada