Kütüphane sınıfı
- Kotlin kursu
- Orta seviye
- Ders 60/116
- 6 dk
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
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
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
class Library {
val books = mutable____<Book>()
}
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<Book>() 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.