CodeBlanks Logo Icon CodeBlanks

Erişim belirleyiciler

C# kursu · Orta seviye · Ders 24/116

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

  1. 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.

  2. Private alanı tamamla

    private ____ count;
    Cevabı göster
    private int count;
  3. 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

Orta seviye bölümündeki tüm dersler