Erişim belirleyiciler
public, private, protected ve internal arasındaki farkı öğrenirsin.
Erişim belirleyiciler
Erişim belirleyiciler (access modifiers), bir sınıf üyesinin nereden görülebileceğini denetler. C#'ın dört temel belirleyicisi vardır: public her yerden, private yalnız sınıf içinden, protected sınıf ve türetilmiş sınıflardan, internal aynı derleme (assembly) içinden.
Varsayılan belirleyici sınıf üyeleri için private'tır. Bu yüzden açıkça public yazmazsan üye sınıf dışından erişilemez. Kapsülleme için çoğu alan private yapılır; dışarıya public özelliklerle açılır.
protected ve internal
protected, üyeyi sınıf içinden ve o sınıftan türetilmiş alt sınıflardan erişilebilir yapar. Miras hiyerarşisinde alt sınıfların görmesi gereken ama dış dünyanın görmemesi gereken üyeler için idealdir.
internal, üyeyi aynı derleme (assembly) içinde her yerden erişilebilir yapar. Bir kütüphane yazıyorsan, kütüphane içi sınıflar birbirini görür ama dışarıdaki kod göremez. İkisini birleştiren protected internal ise ya aynı derlemeden ya da türetilmiş sınıftan erişime izin verir.
Uygulama Account sınıfında private alan kullan
Bir Account sınıfı tanımla. İçine private decimal balance; alanını ekle. public void Deposit(decimal amount) metodu ekle ve gövdede balance = balance + amount; yaz. Ayrıca public decimal GetBalance() metodu ekle ve return balance; yaz. Main içinde Deposit(100) çağır ve GetBalance()'ı yazdır.
Örnek çözümü göster
Account'a private balance alanı, Deposit ve GetBalance metotları ekle. Main içine Account a = new Account(); a.Deposit(100); Console.WriteLine(a.GetBalance()); yaz.
Örnek çözüm:
using System;
class Account
{
private decimal balance;
public void Deposit(decimal amount)
{
balance = balance + amount;
}
public decimal GetBalance()
{
return balance;
}
}
class Program
{
static void Main()
{
Account a = new Account();
a.Deposit(100);
Console.WriteLine(a.GetBalance());
}
}
Kendini test et
-
Hangisi yalnız sınıf içinden erişime izin verir?
- public
- internal
- private
- protected
Cevabı göster
private — Doğru. private yalnız sınıf içinden erişime izin verir.
-
Private alanı tamamla
private ____ count;Cevabı göster
private int count; -
Belirleyiciyi kapsamına eşle
- public
- Her yerden
- private
- Yalnız sınıf içi
- protected
- Sınıf ve alt sınıflar
- internal
- Aynı derleme