CodeBlanks Logo Icon CodeBlanks

Özet - Kapsülleme

C# kursu · Orta seviye · Ders 29/116

Erişim belirleyici, property ve init'i birleştirerek bir Account sınıfı yazarsın.

Kapsülleme özeti

Beş derste C#'ın kapsülleme mekanizmasını öğrendin. public, private, protected ve internal belirleyicileri üyenin nereden görüleceğini denetler. Özellikler get ve set ile kontrollü erişim sağlar.

Auto-property kodu kısaltır, init değişmezliği garanti eder, required başlatmada zorunluluğu getirir. Şimdi iki mini görevle tüm bunları birleştireceksin: önce özel alan ve özellik, sonra init ile değişmez yapı.

Uygulama BankAccount sınıfında kapsülleme

Bir BankAccount sınıfı tanımla. İçine private decimal balance; alanını ve public decimal Balance { get { return balance; } } salt okunur özelliğini ekle. public void Deposit(decimal amount) metodu ekleyip gövdede balance = balance + amount; yaz. Main içinde Deposit(500) çağır ve Balance'ı yazdır.

Örnek çözümü göster
BankAccount'a private balance, salt okunur Balance özelliği ve Deposit metodu ekle. Main içine BankAccount b = new BankAccount(); b.Deposit(500); Console.WriteLine(b.Balance); yaz.
Örnek çözüm:
using System;

class BankAccount
{
    private decimal balance;

    public decimal Balance
    {
        get { return balance; }
    }

    public void Deposit(decimal amount)
    {
        balance = balance + amount;
    }
}

class Program
{
    static void Main()
    {
        BankAccount b = new BankAccount();
        b.Deposit(500);
        Console.WriteLine(b.Balance);
    }
}

Uygulama Config sınıfında init kullan

Bir Config sınıfı tanımla. İçine public required string Environment { get; init; } ve public int Timeout { get; init; } = 30; özelliklerini ekle. Main içinde new Config { Environment = "Üretim" } ile örnek oluştur ve Environment ile Timeout'u yazdır.

Örnek çözümü göster
Config'e required Environment ve init Timeout özelliklerini ekle. Main içine Config c = new Config { Environment = "Üretim" }; Console.WriteLine(c.Environment); Console.WriteLine(c.Timeout); yaz.
Örnek çözüm:
using System;

class Config
{
    public required string Environment { get; init; }
    public int Timeout { get; init; } = 30;
}

class Program
{
    static void Main()
    {
        Config c = new Config { Environment = "Üretim" };
        Console.WriteLine(c.Environment);
        Console.WriteLine(c.Timeout);
    }
}

Kapsülleme tamam

Kapsülleme artık araç çantanda. Erişim belirleyicilerle üyenin görünürlüğünü denetler, özelliklerle kontrollü erişim sağlar, auto-property ile kod kısaltırsın. init değişmezlik, required zorunluluk ekler.

Bu beş grup, C#'ın OOP temellerini tamamladı: sınıflar, yapıcılar, miras, kapsülleme ve bir yardımcı kütüphane projesi. Sonraki bölümlerde generics, LINQ ve async gibi ileri konular seni bekliyor.

Kendini test et

  1. Hangisi yalnız sınıf içinden erişilebilir?

    • private
    • public
    • internal
    • protected
    Cevabı göster

    private — Doğru. private üyeye yalnız sınıf içinden erişilir.

  2. init özelliğini tamamla

    public int X { get; ____; }
    Cevabı göster
    public int X { get; init; }

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