Şimdi yükleniyor

Java static kelimesinin kullanımı

  • Static kelimesi türkçe’de durağan anlamına gelmektedir aslına bakılırsa kullanımı açısından da durum böyledir. Sınıfa ait bir değişkeni ya da metodu static yapabiliriz, static olarak belirlediğimiz değişken artık o sınıftan oluşturulan tüm nesnelerin ortak özelliği olacaktır.
  • static olmayan değişkenler nesnenin oluşması ile birlikte oluşur ve bellekte nesneye ait alanda yer alırlar, static değişkenler ise sınıfın oluşturulması ile birlikte bellekte yerlerini alırlar, böylece her nesne oluşmasında tekrar tekrar bellekte bu değişkenin yer tutması için belleğe başvurulmaz çünkü static değişkenin yeri sınıf oluşturulurken açılmıştır.
  • Oluşturduğumuz top nesnelerinin bir yerde sayısını tutmak istiyorsak yapılandırıcı metod içerisine bir sayaç koyup kaç tane nesne üretildiğini anlayabiliriz. Çünkü static değişken nesnenin kendi alanını değil sınıfın alanını kullanır dolayısıyla her nesne üretiminde sayaç tekrar başa dönmez.
public class Top(){
int adet=0;
public Top(){
adet++;
}
}  

java-kalitim-top

Top top1=new Top();
System.out.println(top1.adet);
Adet: 1
Adet: 1
Top top2=new Top();
System.out.println(top2.adet);
java-kalitim-basket-topu
Adet: 1

Adet değişkenini static olarak tanımlayalım ve adetleri tekrar yazdıralım.

public class Top(){
static int adet=0;
public Top(){
adet++;
}
}  

java-kalitim-top

Top top1=new Top();
System.out.println(top1.adet);
Adet: 1
Adet: 1
Top top2=new Top();
System.out.println(top2.adet);
java-kalitim-basket-topu
Adet: 2

değişkeni static olarak tanımladığımızda diğer top metoduna geldiğinde adeti +1 yaparak ADET:2 olarak çıktı verdi.

Örnek:

public Çalışan(){
String kurum=«Arel»;
}
public Çalışan(){

static String kurum=«Arel»;
}

Soru: Yukarıdaki örnekte 1.kod blogunda kurum özelliği de her nesne için aynı olacaktır, peki iki tanımlama arasındaki fark nedir?

Cevap: 1.kod blogundaki kurum özelliği çalışan sınıfından üretilen her nesne için bellekte her defasında oluşturulacak ve nesneye özel olacaktır ancak 2.kod blogunda ki kurum özelliği sınıfın özelliği olduğu için her oluşan nesnenin özelliği olacaktır ama tekrar tekrar her defasında bellekte bu özellik için yer ayrılmayacaktır.

Yorum gönder