Tekrar - Banka Hesabı
Coddy'nin Kotlin Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası. Ders 11 / 57.
Görev
OrtaBankAccount(val owner: String, opening: Int) sınıfını tamamla. Sınıfın init bloğu boşluk içermeyen bir sahip (owner is empty) ve negatif olmayan bir başlangıç bakiyesi (opening must not be negative) gerektirir. balance özelliğinin setter'ı özeldir. İşlemler özel bir MutableList içinde tutulur ve val transactions: List<String> olarak dışa sunulur. deposit(amount) ve withdraw(amount) başarılı olduklarında true döndürür: 1'in altındaki miktarlar reddedilir ve bakiyeden büyük bir çekim reddedilir; başarılı değişiklikler +50 veya -20 olarak kaydedilir. statement(), Ada: 30 (+50, -20) veya Ada: 0 (no transactions) döndürür.
Sağlanan kod, sahibin adını ve başlangıç bakiyesini (name,amount), ardından d n veya w n komutlarını okur. Başarısız komutlar için refused yazdırır ve son olarak hesap özetini yazdırır; geçersiz bir hesap için hata mesajını yazdırır.
Kodun BankAccount.kt dosyasına yazılmalıdır. 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 (name, amount) = input[0].split(",")
val account = BankAccount(name, amount.toInt())
for (cmd in input.drop(1)) {
val (op, n) = cmd.split(" ")
val ok = if (op == "d") account.deposit(n.toInt()) else account.withdraw(n.toInt())
if (!ok) println("refused")
}
println(account.statement())
} 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