Java Eğitimi 30-Access Modifiers(Erişim Belirleyiciler)

Merhabalar,

Bugün yeni bir konu ile karşınızdayım. Bu yazıda Java programında erişim belirteçlerinden bahsedeceğim.

Bir sınıfın değişkenine ya da metoduna sınıfın içinden, sınıfta yer alan nesneden ulaşımın nasıl olacağını belirleyen belirteçlere “access modifier” yani “erişim belirteçleri“adı verilir. Aslında nesne yönelimli programlamada erişim belirleyiciler küçük bir kısma sahiptirler. Ama özelliklerinin bilinmesi ve o amaca göre kullanılması işleri kolaylaştırdığı için önemli bir yere sahiptir de diyebiliriz. Biz genellikle küçük çaplı programlar ile uğraştık ama daha detaylı projelerde erişim belirleyiciler olmazsa olmaz bir nitelik olarak karşımıza çıkar. Konudan bahsettikten sonra, önceki derslerden de hatırlayacaksınızdır. 

Erişim belirleyiciler 4 ana gruba ayrılır. Bunlar:

  1. public
  2. private
  3. protected
  4. default

şeklinde sıralanabilir. Şimdi tek tek açıklamaya başlayayım. 

PUBLIC

Bir sınıfı,metodu ya da değişkeni niteleyebilir. Nitelediği bu ögeler herkese açıktır. Mesela public olarak tanımlanan bir değişkene bütün sınıfların erişimi mümkündür. Override yöntemini hatırlıyor musunuz? Bir sınıfta tanımlanan bir değişkeni ya public olarak tanımlayıp diğer sınıfta kullanabiliyorduk ya da private ile tanımlamışsak override ile setter-getter kodlarına ihtiyaç duyuyorduk. Yine de public kullanımına değişken, sınıf ve metot üzerinden örnek vermek istiyorum. Örneğin;

public class islem{   
      //kodlar
}

Yukarıda bir adet sınıf tanımlamış olduk. Bu sınıf public ile tanımlandı ve ismine islem adını verdik. Yazacağımız kodları da sınıf gövdesinde yazabiliriz. Veya public ile değişken tanımlamak istersek;

public int a;

şeklinde yazarız. Bu da a değişkenine integer yani tam sayı değerini atar. Son olarak metot tanımlayarak public konusunu sonlandıralım.

public double carpim(double a, double b){
     return a+b;
}

PRIVATE

Bu erişim belirleyicisine sahip olan değişkenler, metot ya da sınıflara erişim sadece sınıf içerisinde mümkün olur. Alt sınıflardan erişim mümkün olmaz. 

private int toplam;

şeklinde bir toplam değişkeni tanımlarsak bu değişkene erişim sadece bu sınıf üzerinden olur. Örneğin toplam adı ile bir metot tanımlamış olsaydık ve bu metoda başka bir sınıf üzerinden erişmek isteseydik erişim mümkün olmayacaktı. 

PROTECTED(KORUMALI)

Örneğin protected ile tanımlanmış bir değişken; o sınıf içerisinden, o sınıfta oluşturulan nesnelerden ve alt sınıflardan erişime açık olur. Diyelim ki kalıtım uygulayarak ulaşmak istedik; bu durum mümkündür, kalıtım yapılan sınıftan erişime açık hale gelir ama nesne ulaşımına hala kapalıdır. 

DEFAULT

Erişim belirleyicisi olmayan belirteç anlamına gelir. Yani bu değişkenler sınıf içerisinden erişime ya da nesneden erişime açıktırlar ama dış paketlerden kalıtım yapılsa dahi ulaşıma açık değildirler. Bu anlamda protected kavramının tersi olarak da düşünülebilir. 

Bütün erişim belirteçlerini özet halinde karşılaştıracak olursak;

  • Tüm belirleyicilere sınıf içi erişim sağlanır. 
  • Paket içi erişim sadece private belirtecinde sağlanmaz; diğer 3 belirteçte paket içi erişim mevcuttur.
  • Paket dışından erişim sadece public ile sağlanır. 
  • Paket dışından kalıtım ile erişim public ve protected belirteçleri ile mümkün olur. 

Yorum bırakın