CodeBlanks Logo Icon CodeBlanks

Kütüphane sınıfı

Library sınıfıyla koleksiyon yönetimini kurarsın.

Library sınıfı

Kütüphanenin beyni Library sınıfıdır. İçinde kitapları ve üyeleri tutmak için iki değiştirilebilir liste bulunur: val books = mutableListOf<Book>() ve val members = mutableListOf<Member>().

Bu listelere eleman eklemek için fun addBook(book: Book) ve fun addMember(member: Member) metotları yazılır. Her ikisi de books.add(book) benzeri tek satırla çalışır. Böylece kütüphane kitap ve üye koleksiyonunu yönetir; sonraki derslerde ödünç verme ve arama bu listeler üzerinden yapılacak.

addBook ve addMember

Listeye eleman eklemek için add metodu kullanılır. Library sınıfı bu metodu iki kez sarar: fun addBook(book: Book) { books.add(book) } ve fun addMember(member: Member) { members.add(member) }.

Böylece dışarıdan lib.addBook(Book(...)) çağrısı yapılırken listenin kendisi gizli kalır. Bu, kapsülleme (encapsulation) ilkesidir: liste değişkeni val olsa da içerik dışarıdan add metotlarıyla denetlenir. Listeyi yazdırmak için books.forEach { println(it) } kullanılır.

Uygulama Library sınıfını tanımla

Book ve Member veri sınıflarını bir önceki dersteki gibi tanımla. Sonra class Library tanımla; içinde val books = mutableListOf<Book>() ve val members = mutableListOf<Member>() olsun. fun addBook(book: Book) ve fun addMember(member: Member) metotlarını ekle. main içinde iki kitap ekle ve books.forEach { println(it) } ile yazdır.

Başlangıç kodu

Main.kt
data class Book(val title: String, val author: String, val isbn: String)
data class Member(val name: String, val id: String)

// Library sınıfını tanımla: books ve members listeleri, addBook ve addMember metotları

fun main() {
    val lib = Library()
    // addBook ile iki kitap ekle ve books'u forEach ile yazdır
}

Örnek çözüm

Main.kt
data class Book(val title: String, val author: String, val isbn: String)
data class Member(val name: String, val id: String)

class Library {
    val books = mutableListOf<Book>()
    val members = mutableListOf<Member>()
    fun addBook(book: Book) { books.add(book) }
    fun addMember(member: Member) { members.add(member) }
}

fun main() {
    val lib = Library()
    lib.addBook(Book("Suç ve Ceza", "Dostoyevski", "978-1"))
    lib.addBook(Book("Savaş ve Barış", "Tolstoy", "978-2"))
    lib.books.forEach { println(it) }
}

Beklenen çıktı

Book(title=Suç ve Ceza, author=Dostoyevski, isbn=978-1)
Book(title=Savaş ve Barış, author=Tolstoy, isbn=978-2)

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Kitap listesini tamamla

Soru
class Library {
    val books = mutable____<Book>()
}
Cevap
class Library {
    val books = mutableListOf<Book>()
}

Açıklama: mutableListOf ile değiştirilebilir kitap listesi oluşturulur.

2 Library parçalarını eşle

Kavram Anlamı
addBook Kitap ekler
addMember Üye ekler
books Kitap listesi
members Üye listesi

3 mutableListOf&lt;Book&gt;() ne üretir?

  • Sabit boyutlu dizi
  • Salt okunur liste
  • Tek elemanlı küme
  • Değiştirilebilir liste Doğru cevap

Açıklama: mutableListOf değiştirilebilir (add/remove yapılabilen) liste döndürür.

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