Özet - Hayvanat Bahçesi Görevlisi
Coddy'nin Kotlin Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası. Ders 31 / 57.
Görev
OrtaHayvanat bahçesinde bir gün planla.
Animal(name, kg),species,foodvedailyGrams()soyut üyelerine veLeo the lion: 5700 g meatdeğerini döndürenline()yöntemine sahip soyut bir sınıftır.Lionet yer, kilogram başına 30 g.Parrottohum yer; ağırlığı ne olursa olsun günde 50 g.Sealbalık yer, kilogram başına 40 g.Trainablearayüzündetrick()bulunur. Papağanlar (Polly says hello) ve foklar (Sammy balances a ball) eğitilebilir; aslanlar eğitilemez.List<Animal>.foodTotals(), yiyeceklere göre gram miktarlarını, yiyecekler alfabetik sırada olacak şekilde döndürür:fish 4000, meat 5700.showLineup(animals), bir tür denetimi kullanarak eğitilebilir hayvanların numaralarını sırayla döndürür; hiçbiri yoksano showdöndürür.
Verilen kod, lion,Leo,190, parrot,Polly,1 veya seal,Sammy,100 satırlarını okur ve her line() sonucunu yazdırır; ardından toplamlarla birlikte food: ve döndürülen her numara için bir show: satırı yazdırır.
Kodunuzu Animal.kt, Trainable.kt, Lion.kt, Parrot.kt, Seal.kt ve Functions.kt dosyalarına yazın. Main.kt verilen 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()
val animals = input.map { line ->
val (kind, name, kg) = line.split(",")
when (kind) {
"lion" -> Lion(name, kg.toInt())
"parrot" -> Parrot(name, kg.toInt())
else -> Seal(name, kg.toInt())
}
}
for (a in animals) println(a.line())
println("food: " + animals.foodTotals())
for (s in showLineup(animals)) println("show: $s")
}
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ç Alma3Nesneler ve Eşlikçiler
Nesne BildirimleriEşlikçi Nesnelerconst ile SabitlerNesne İfadeleriTekrar - Bilet Gişesi6Çok Biçimlilik
Dinamik GönderimTür Denetimleri ve Akıllı DönüşümlerTürlerle whenUzantı FonksiyonlarıÖzet - Hayvanat Bahçesi GörevlisiKendi başına pratik yap: Kotlin playground