CodeBlanks Logo Icon CodeBlanks

OOP modeli

C# kursu · Orta seviye · Ders 113/116

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

  1. Liste bildirimini tamamla

    private List<____> _books = new List<Book>();
    Cevabı göster
    private List<Book> _books = new List<Book>();
  2. _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.

  3. Üyeyi rolüne eşle

    _books
    İç liste
    Add
    Kitap ekle
    Count
    Kitap adedi
    private
    Gizli erişim

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