OOP modeli
Sınıf hiyerarşisi ve interface'leri kurarsın.
Library sınıfı
Bir Library sınıfı kitapları bir arada tutar. İçte bir List<Book> saklar ve Add metoduyla yeni kitap kabul eder. Count özelliği kaç kitap olduğunu verir.
Bu tasarım kapsülleme (encapsulation) örneğidir: dışarıdan iç listeye doğrudan erişilmez, yalnızca Add ve Count gibi denetimli üyelerle çalışılır. Veri sınıfın içinde güvenle durur.
Add ve Count üyeleri
public void Add(Book b) => _books.Add(b); tek satırlık ifade gövdesi (expression-bodied) ile yeni kitap ekler. public int Count => _books.Count; ise listenin adedini dışarıya verir.
Bu üyeler dışarıdan çağrılır; _books alanı private olduğu için doğrudan erişilemez. Bu, kapsüllemenin pratik sonucudur: içerideki değişiklikler dış kodu bozmaz.
Uygulama Library sınıfını ekle
Aşağıdaki Book sınıfı hazır. Bir Library sınıfı ekle: içte List<Book> _books tutsun, Add(Book b) ve Count üyeleri olsun. Main içinde bir Library oluştur, bir kitap ekle ve adedini yazdır.
Örnek çözümü göster
class Library { private List<Book> _books = new List<Book>(); public void Add(Book b) => _books.Add(b); public int Count => _books.Count; } yaz. Main'de var lib = new Library(); lib.Add(new Book { Title = "Suç ve Ceza", Author = "Dostoyevski" }); Console.WriteLine(lib.Count);
Örnek çözüm:
using System;
using System.Collections.Generic;
class Book
{
public string Title { get; set; }
public string Author { get; set; }
}
class Library
{
private List<Book> _books = new List<Book>();
public void Add(Book b) => _books.Add(b);
public int Count => _books.Count;
}
class Program
{
static void Main()
{
var lib = new Library();
lib.Add(new Book { Title = "Suç ve Ceza", Author = "Dostoyevski" });
Console.WriteLine(lib.Count);
}
}
Kendini test et
-
Liste bildirimini tamamla
private List<____> _books = new List<Book>();Cevabı göster
private List<Book> _books = new List<Book>(); -
_books neden private?
- Daha hızlı çalışır
- Kapsülleme sağlar
- Derleyici zorunlu kılar
- Çöp toplayıcı ister
Cevabı göster
Kapsülleme sağlar — Doğru. private erişim, iç listeyi dış müdahaleden korur.
-
Üyeyi rolüne eşle
- _books
- İç liste
- Add
- Kitap ekle
- Count
- Kitap adedi
- private
- Gizli erişim