Şimdiye kadar yazdığımız Sınıf örneklerinde metotlara veya değişkenlerle her yerden erişim mümkündü, ama bazı durumlarda bu metot veya değişkenlerin kullanıcı tarafından erişilmesine gerek yoktur veya bu erişimin sakıncalı yönleri olabilir Sınıflara erişim kısıtlama işlemi için kullanılan erişim belirleyicileri ve anlamları
Erişim Belirleyici | Açıklama |
---|---|
private | Erişim seviyesi private olarak ayarlanan üyelere sadece bu üyenin bulunduğu sınıf içerisinden erişilebilir. |
internal | Sadece üyenin bulunduğu proje içerisinden erişilebilir. |
protected | Sadece üyenin bulunduğu sınıf ve bu sınıftan türemiş alt sınıflardan erişilebilir. |
protected internal | Sadece üyenin bulunduğu proje içerisinden ayrıca üyenin sınıfından türemiş alt sınıflar tarafından erişilebilir. |
public | public üyelerin erişiminde herhangi bir kısıtlama yapılmaz. İstenilen her yerden üyeye erişim açıktır. |
Nesne tabanlı programlamada tüm sınıf alanlarının private yapılması ve bu alanlara erişimin metotlar ve/veya Özellikler(properties) üzerinden sağlanması tavsiye edilir. Bu sayede alanlara veya değişkenlere dışarıdan verilecek değerler kontrol edilebilir. Aksi takdirde dışarıdan herhangi bir alana verilecek değerleri kontrol etmemiz imkânsızdır.
Şimdi aşağıdaki örnek ile uzunluk değerlerine göre dörtgenin kare veya dikdörtgenin olup olmadığını kontrol ediyor.
static void Main(string[] args) { Dortgen dortgen = new Dortgen(); dortgen.KısaKenarUzunlugu = 200; dortgen.UzunKenarUzunlugu = 200; Console.WriteLine("Kenar Uzunlukları = {0}x{1}", dortgen.KısaKenarUzunlugu, dortgen.UzunKenarUzunlugu); Console.WriteLine("Dörtgen Tipi : {0}", dortgen.DortgenTipi); Dortgen dortgeniki = new Dortgen(); dortgeniki.KısaKenarUzunlugu = 100; dortgeniki.UzunKenarUzunlugu = 350; Console.WriteLine("Kenar Uzunlukları = {0}x{1}", dortgeniki.KısaKenarUzunlugu, dortgeniki.UzunKenarUzunlugu); Console.WriteLine("Dörtgen Tipi : {0}", dortgeniki.DortgenTipi); Console.ReadKey(); Console.ReadKey(); } } class Dortgen { private int kısaKenarUzunlugu; private int uzunKenarUzunlugu; public int KısaKenarUzunlugu { get { return kısaKenarUzunlugu; } set { kısaKenarUzunlugu = value; } } public int UzunKenarUzunlugu { get { return uzunKenarUzunlugu; } set { uzunKenarUzunlugu = value; } } public string DortgenTipi { get { string tip = ""; if (kısaKenarUzunlugu == uzunKenarUzunlugu) tip = "Kare"; else tip = "Dikdörtgen"; return tip; } }