Özet - Kapsülleme
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
-
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.
-
init özelliğini tamamla
public int X { get; ____; }Cevabı göster
public int X { get; init; }