Public, Private, Protected, Final, Static Kavramları

Nesne yönelik programlamada bir sınıfın içindeki metotlar, fonksiyonlar ve değişkenler o sınıfın üyeleridir. Bu üyeler gizlilik/ulaşım ihtiyacına göre tanımlanır. Bu tanımların ne işe yaradığını, üyelere ne gibi imkanlar ve kısıtlamalar getirdiğini göreceğiz.

Public
Public tanımı en genel tanımdır. Bir üyeyi public olarak tanımladığınızda, ilgili sınıfın nesnesiyle her yerden erişebilirsiniz.

Private
Private üyelere o sınıf dışından herhangi bir şekilde erişilemez. Private olarak tanımlanan üyeler sadece o sınıfın kendi fonksiyonları ve metotları tarafından kullanılabilir. Bir değişkeni private olarak tanımladığınızda ve bu değişkenin başka bir sınıf tarafından kullanılması gerektiğinde bu değişkeni döndüren bir public fonksiyon yazarak işlemi gerçekleştirebilirsiniz.
Dipnot: Private üyenin tanımlandığı sınıfa extend eden diğer alt sınıflar da private üyeye erişemez.

Protected
Protected üyeler de private üyeler gibidir. İlgili sınıf dışından erişilemezler ama protected üyelerin tek farkı ilgili sınıf tarafından türetilen diğer sınıfların içerisinden bu üyelere erişilebiliyor olmasıdır. Bir sınıf extend ettiği sınıfın protected üyelerine erişebilir ama private üyelerine erişemez.

Final
Final ile tanımlanan üyeler tiplerine göre değişik özelliklere sahip olurlar;

  • Final tanımlanan sınıf extend edilemez (başka alt sınıfları olamaz)
  • Final tanımlanan metot override edilemez (başka bir sınıf tarafından alınıp genişletilemez)
  • Final tanımlanan değişkenlere bir sefer atama yapılabilir, değerleri bir daha değiştirilemez

Static
Static tanımı yaptığınızda o sınıfın üyesine o sınıfın nesnelerini kullanarak değil, doğrudan erişebilirsiniz. Yani siz insan sınıfına isim değişkeni eklediniz ve bunu static olarak tanımladıysanız bu ismi bir yerde kullanmak istediğiniz zaman insan sınıfından bir nesne üretmenize gerek yoktur. Eğer static tanım kullanmazsanız insan sınıfındaki isim üyesine ulaşmak için önce insan sınıfından bir nesne üretmeli ve bu nesne ile o üyeyi çağırmalısınız.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir