Tekrar - Kütüphane Kartı
Coddy'nin Kotlin Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası. Ders 6 / 57.
Görev
OrtaLibraryCard(val name: String, val limit: Int = 3) sınıfını tanımlayın. init bloğu boş olmayan bir ad (name is empty) ve en az 1 değerinde bir limit (limit must be positive) gerektirir. Ödünç alınan başlıkların bir listesini tutar. borrow(title), kart limitine ulaşmadığı ve başlığı zaten içermediği sürece true döndürür ve başlığı ekler. giveBack(title), başlığı kaldırdığında true döndürür. status(), ödünç alma sırasına göre Ada: 2/3 (Dune, Emma) veya hiçbir şey ödünç alınmadığında Ada: 0/3 döndürür.
Sağlanan kod adı, limiti (veya varsayılan değer için boş bir satırı) ve ardından +title ya da -title komutlarını okur. Her komut için ok veya no yazdırır ve son olarak status() çağrısını yazdırır; geçersiz bir kart yerine hata mesajını yazdırır.
Kodunuz LibraryCard.kt dosyasına gitmelidir. Main.kt sağlanan girdi/çıktı kodunu içerir ve düzenlenemez.
Kendin dene
fun main() {
// Sağlanan girdi/çıktı kodu: olduğu gibi bırakın
val input = generateSequence(::readLine).toList()
try {
val card = if (input[1].isEmpty()) LibraryCard(input[0]) else LibraryCard(input[0], input[1].toInt())
for (cmd in input.drop(2)) {
val title = cmd.drop(1)
val done = if (cmd.startsWith("+")) card.borrow(title) else card.giveBack(title)
println(if (done) "ok" else "no")
}
println(card.status())
} catch (e: IllegalArgumentException) {
println(e.message)
}
}
Nesne Yönelimli Programlama bölümündeki tüm dersler
1Sınıflar ve Nesneler
Dosyalarla ÇalışmaSınıfları TanımlamaBirincil Yapıcılarinit Blokları ve Doğrulamaİkincil YapıcılarTekrar - Kütüphane Kartı4Kalıtım
Açık Sınıflar ve Alt SınıflarÜyeleri Geçersiz Kılmasuper ve YapıcılarSoyut SınıflarTekrar - Personel Dizini2Özellikler ve Kapsülleme
Özel ErişimcilerGörünürlük DeğiştiricileriÖzel Setter'larlazy ve lateinitTekrar - Banka Hesabı5Arayüzler
Arayüz BildirimleriVarsayılan MetotlarBirden Çok ArayüzTür Olarak ArayüzlerÖzet - Ödeme Yöntemleri8Generic'ler
Generic FonksiyonlarGeneric SınıflarTür Kısıtlamalarıin ve out ile VaryansTekrar - Öncelik Kuyruğu11Proje: Kütüphane Yönetimi
Kitaplar ve ÜyelerKitap Ödünç AlmaKendi başına pratik yap: Kotlin playground