Fırat Eşki


Kodların Dünyası…


Ders 6 – Scala Erişim Belirleyicileri(Access Modifiers)

Paketler(packages), sınıflar(classes) veya nesneler(objects) erişim belirleyicileri tarafından Private, Protected veya bunlardan birini kullanmadığımızda varsayılan olarak Public olarak belirlenir. Bu belirleyiciler kodun belirli kısımlarına erişimi kısıtlar. Erişim belirleyicilerini kullanmak için alt bölümde göreceğimiz gibi anahtar kelimeleri paketin, sınıfın veya nesnenin üyelerini tanımlarken belirtiriz.

Özel Üyeler (Private members):

Bir özel(private) üye sadece tanımlanmış olduğu sınıf veya nesneye görünür. Aşağıdaki örnekte görüldüğü gibi:

Scala’da dilinde üstteki gibi (new Inner).f() kullanımı illegaldir çünkü f ‘Private’ anahtar kelimesi yani ‘özel’ olarak ‘Inner’ sınıfı içerisinde tanımlanmıştır ama ‘Inner’ dışından erişilmeye çalışılmıştır.

Aksi olarak ‘InnerMost’ sınıfı ‘Inner’ sınıfının üyesi olduğu için ‘InnerMost’ sınıfı içerisinden f fonksiyonuna hatasız bir şekilde erişebildik. Java her iki kullanıma da izin verebilir.

Korumalı Üyeler (Protected members):

Korumalı üyelere sadece tanımlamanın yapıldığı sınıfın alt sınıfından erişilebilir. Aşağıdaki örnekte görüldüğü gibi:

f fonksiyonuna ‘Sub’ sınıfından erişimde bir problem yok çünkü, f ‘Super’ sınıfının içinde Protected ile tanımlanmış ve ‘Sub’ sınıfı ‘Super’ sınıfının alt sınıfıdır. ‘Other’ sınıfından f fonksiyonuna erişime izin verilmedi çünkü ‘Other’ sınıfı ‘Super’ sınıfından miras alınmamıştır. Java’da her iki kullanıma da izin verilebilir çünkü, ‘Other’ ve ‘Sub’ aynı paket(package) içerisindedir.

Ortak Üyeler (Public members):

Private veya Protected anahtar kelimesi ile tanımlanmayan her üye Public(ortak) olarak kabul edilir. Public üyeler için belli bir anahtar kelime yoktur. Bu tür üyelere herhangi bir yerden erişilebilir. Aşağıdaki örnekte görüldüğü gibi:

Koruma Kapsamı (Scope of protection):

Erişim belirleyicileri niteleyiciler ile arttırılabilir. Bu niteleyiciler private[X] veya protected[X] olmakla beraber erişimin paket kapsamı içerisinde belirtilen X’e kadar Private veya Protected olduğunu belirtir. X paket(package), sınıf(class) veya tek bir nesne(object) olabilir. Aşağıdaki örnek üzerinde biraz düşünün:

Yukarıdaki örnekte aşağıdaki noktalara dikkat edilmelidir:

  • workDetails değişkenine professional paketi içerisindeki herhangi bir sınıf için erişilebilir durumdadır.
  • frineds değişkeni society paketi içerisindeki herhangi bir sınıf için erişilebilir durumdadır.
  • secrets değişkeni sadece belirtilen yerin içinden erişilebilir durumdadır (this).

Merhaba, ben Fırat Eşki bu da benim blogum. Bilgisayar ve teknoloji dünyasını yakından takip ediyorum. Küçük yaşta giriş yapmış olduğum kod dünyasına olan ilgim ve sevgim gün geçtikçe artarak devam ediyor.