Merhabalar, bugün kod yazarken daima kullandığımız ama ne işe yaradığını bilmediğimiz veya neden kullandığımızı tam olarak bildiğimiz erişim belirteçlerine(access modifiers) kısaca değineceğim. C#’ta 4 adet erişim belirteci bulunmaktadır; public, private, protected, internal. Bizim en çok kullandığımız belirteçler ise public ve private‘tir. Erişim belirteçleri temel itibariyle nesnelerin yanlış kullanılmasını önler. Güvenlik, esneklik ve düzen açısından önemli yapılardır.
Public belirteci tüm sınıflardan rahatça ulaşılabilecek üyeleri kullanabilmek için tanımlanır. Burada önemli bir nokta vardır. Güvenlik açısından önemli olan üyeler kesinlikle public tanımlanmamalıdır. Private belirteci ile bir nesnenin içindeki verilerin ne zaman ve nasıl kullanılacağını kontrol edebiliriz. Sadece kendi sınıfından o üyeye ulaşabiliriz. Sınıf dışından gereksiz müdahalelerin önüne geçmiş oluruz. Bu yüzden güvenlik açısından bize destek sağlar. Protected ve internal sadece kalıtımda kullanılmaktadır. Daha sonra bu belirteçlere de değineceğim.
Birkaç önemli noktayı hatırlatalım:
– Sadece kendi sınıf içinden kullanılacak üyeler private tanımlanmalıdır,
– Eğer bir üye üzerinde yapılan değişiklik başka yapıları da etkiliyorsa veya zarar veriyorsa, o üye private tanımlanmalıdır,
– Private verilerin değerlerini alan ve ayarlayan metotlar public olmalıdır.
Örnek üzerinde erişim belirteçlerine değinmeye devam edelim:
class Erisim { private int tek; // private erişim açıktan belirtilir. int cift; // varsayılan erişim private tir. public int asal; // public erişim // Parametreyi değişkene atayan metod public void SetTek (int a) { tek = a; } // Değişkenin değerini döndüren metod public int GetTek() { return tek; } // Parametreyi değişkene atayan metod public void SetCift(int a) { cift = a; } // Değişkenin değerini döndüren metod public int GetCift() { return cift; } } class ErisimDemo { static void Main() { Erisim e = new Erisim(); // Kendi sınıfındaki metotlar private değişkenleri kullanabilirler e.SetTek(3); e.SetCift(16); Console.WriteLine("Tek sayı: " + e.GetTek()); Console.WriteLine("Çift Sayı: " + e.GetCift()); // Private değişkenlere erişemeyiz // e.tek = 5; // Erişim olmaz // e.cift = 6; // Erişim olmaz // asal değişkeni public olduğu için erişebiliyoruz. e.asal = 7; } }
Erişim belirteçlerinin ne olduğuna ve nasıl kullanıldıklarına kısaca değinmeye çalıştım. Kod yazdıkça bu yapıları pratikte daha rahat benimseyeceksiniz. Bir sonraki yazıda görüşmek üzere. Bizi takip etmeye devam edin 🙂