Java SE Ders19 - Statik (Static) Anahtar Kelimesi


   Bir sınıfta tanımlanan bir değişken sınıfın her nesnesi için özeldir. Fakat bir sınıf içindeki değişkeni statik olarak tanımlamak o sınıftan oluşturulacak tüm nesnelerin o değişkeni ortak olarak kullanılacağını söylemektedir.

Örnek vermek gerekirse, her birinin kendine ait arabası olan 4 kişi olsun. Bu arabaların benzin durumları sadece arabaların kendi sahibini ilgilendirir. Fakat bu 4 kişi tek bir arabayı ortak olarak kullansalardı (statik) o arabanın benzin durumu herkesi ilgilendirecekti.

Statik anahtar kelimesinin özellikleri
  • Statik olmayan sınıf üyeleri sınıftan bir nesne yaratıldığında bellekte oluşturulur.Statik sınıf üyeleri ise sınıftan nesne üretilmese de bellekte vardır. 
  • Statik metotlar static olmayan sınıf üyelerine erişemez. 
  • Statik olmayan metotlar statik olan sınıf üyelerine erişebilir. 
  • Statik sınıf üyeleri tüm nesneler için ortak olduğu için this anahtar kelimesiyle kullanılamaz.(this anahtar kelimesi daha sonra bahsedilecek.)
Şimdi buna uygun bir örnek yapalım.

Personel.java
package test;

public class Personel {
 private static int personelSayisi;

 public Personel(){
  personelSayisi++;
 }
 
 public static int getPersonelSayisi() { //statik metot
  return personelSayisi;
 }

 public int getPersonelSayisi2() {  //statik olmayan metot
  return personelSayisi;
 }

 public static void setPersonelSayisi(int personelSayisi) {
  Personel.personelSayisi = personelSayisi;
 }

}

Main.java
package test;

public class Personel {
 private static int personelSayisi;

 public Personel(){
  personelSayisi++;
 }
 
 public static int getPersonelSayisi() { //statik metot
  return personelSayisi;
 }

 public int getPersonelSayisi2() {  //statik olmayan metot
  return personelSayisi;
 }

 public static void setPersonelSayisi(int personelSayisi) {
  Personel.personelSayisi = personelSayisi;
 }

}


Yorumlar

Bu blogdaki popüler yayınlar

Java SE Ders24 - Composition (Kompozisyon)

Spring Ders20 - Aspect Oriented Programming - AspectJ Annotation Style

JSF Ders30 - Page Template (Sayfa Şablonu)