Özet - Kapsülleme
- C# kursu
- Orta seviye
- Ders 29/116
- 5 dk
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.
Başlangıç kodu
using System;
class BankAccount
{
// private balance alanı, salt okunur Balance özelliği, Deposit metodu
}
class Program
{
static void Main()
{
// BankAccount örneği oluştur, Deposit çağır, Balance'ı yazdır
}
}Ö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);
}
}Beklenen çıktı
500
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.
Başlangıç kodu
using System;
class Config
{
// required Environment ve init Timeout özellikleri
}
class Program
{
static void Main()
{
// Config örneği oluştur, Environment ve Timeout'u yazdır
}
}Ö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);
}
}Beklenen çıktı
Üretim 30
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.
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Hangisi yalnız sınıf içinden erişilebilir?
- public
- private Doğru cevap
- internal
- protected
Açıklama: private üyeye yalnız sınıf içinden erişilir.
2 init özelliğini tamamla
public int X { get; ____; }
public int X { get; init; }
Açıklama: { get; init; } başlatmada yazılabilen özelliktir.