Her ne kadar başlığı C# programlama dili olarak açmış olsam da erişim belirleyicileri (access modifiers) çoğu OOP programlama dili için geçerli bir konu, ama bu niteleyicilerin anahtar kelimeleri dilden dile değişiklik gösterdiği için ben C# programlama dili için olan erişim belirleyicilerinden bahsedeceğim.
Bir uygulamada ya da kütüphanede kalıtımın sınıflar arasındaki hiyerarşinin sağlanabilmesi için encapsulation (kapsülleme) dikkate alınarak sınıfların ve sınıf elemanlarının erişimleri belirlenmelidir. Hangi sınıf elemanlarının hangi sınıflardan erişilebileceğini belirttiğimiz anahtar sözcüklere de access modifier (erişim belirleyici) adı verilir.
private: Sadece aynı sınıftan ya da struct'tan erişime izin verilir. Örneğin Araba sınıfının private Calistir() metoduna Motorsiklet sınıfından erişim sağlanamaz.
public: public sınıf elemanlarına (metod, değişken gibi) projedeki herhangi bir yerden erişilebilir
protected: Bir sınıfın kendisi ya da kendinden türetilmiş alt sınıfları tarafından erişilebilir sınıf elemanlarıdır
internal: Sadece aynı assembly'den (aynı projeden ya da namespace'ten) erişilebilir sınıf elemanlarıdır
Önceki bazı diğer benzer içerikli yazım için;
bkz: Programlamada Encapsulation (Kapsülleme) Nedir?
bkz: C# Abstract Class ile Interface Arasındaki Farklar Nelerdir?
bkz: C# Sealed Anahtar Sözcüğü Nedir? Sealed Kullanımı ve Örnekleri?
bkz: C# Polymorphism (Çok Biçimlilik) Nedir?
bkz: C# ile params anahtar sözcüğü kullanımı ve örnekleri
bkz: Programlama Dillerinde Kalıtım Nedir?