Ulasan: Penjaga Kebun Binatang
Termasuk bagian Pemrograman Berorientasi Objek dalam perjalanan Kotlin di Coddy. Pelajaran 31 dari 57.
Tantangan
SedangRencanakan satu hari di kebun binatang.
Animal(name, kg)bersifat abstrak dengan anggota abstrakspecies,fooddandailyGrams(), serta methodline()yang mengembalikanLeo the lion: 5700 g meat.Lionmakan daging, 30 g per kg.Parrotmakan biji-bijian, 50 g sehari berapa pun beratnya.Sealmakan ikan, 40 g per kg.- Interface
Trainablememilikitrick(). Burung beo (Polly says hello) dan anjing laut (Sammy balances a ball) bisa dilatih; singa tidak. - Extension
List<Animal>.foodTotals()mengembalikan jumlah gram untuk setiap jenis makanan, dengan urutan makanan berdasarkan abjad:fish 4000, meat 5700. showLineup(animals)mengembalikan trik hewan yang bisa dilatih sesuai urutan, menggunakan pemeriksaan tipe, atauno showjika tidak ada.
Kode yang disediakan membaca baris lion,Leo,190, parrot,Polly,1 atau seal,Sammy,100 dan mencetak setiap line(), lalu food: beserta jumlahnya dan satu baris show: untuk setiap trik yang dikembalikan.
Tulis kodemu di Animal.kt, Trainable.kt, Lion.kt, Parrot.kt, Seal.kt dan Functions.kt. Main.kt berisi kode input/output yang disediakan dan tidak boleh diedit.
Coba sendiri
fun main() {
// Kode input/output yang disediakan: biarkan apa adanya
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")
}
Semua pelajaran di Pemrograman Berorientasi Objek
1class dan object
Bekerja dengan fileMendefinisikan classKonstruktor utamaBlok init dan validasiKonstruktor sekunderRingkasan: Kartu Perpustakaan2property dan Enkapsulasi
Accessor KustomModifier VisibilitasSetter Privatlazy dan lateinitRingkasan: Rekening Bank5Interface
Mendeklarasikan Interfacemethod DefaultBeberapa InterfaceInterface sebagai TipeUlasan: Metode Pembayaran11Proyek: Pengelolaan Perpustakaan
Buku dan AnggotaPeminjaman Buku3Objek dan Companion Object
Deklarasi ObjectCompanion ObjectKonstanta dengan constEkspresi ObjectUlasan: Loket Tiket6Polimorfisme
Pemanggilan DinamisPemeriksaan Tipe dan Smart Castwhen dengan TipeFungsi EkstensiUlasan: Penjaga Kebun BinatangLatihan sendiri: Playground Kotlin