Menu
CoddyTech

Ulasan: Penjaga Kebun Binatang

Termasuk bagian Pemrograman Berorientasi Objek dalam perjalanan Kotlin di Coddy. Pelajaran 31 dari 57.

challenge icon

Tantangan

Sedang

Rencanakan satu hari di kebun binatang.

  • Animal(name, kg) bersifat abstrak dengan anggota abstrak species, food dan dailyGrams(), serta method line() yang mengembalikan Leo the lion: 5700 g meat.
  • Lion makan daging, 30 g per kg. Parrot makan biji-bijian, 50 g sehari berapa pun beratnya. Seal makan ikan, 40 g per kg.
  • Interface Trainable memiliki trick(). 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, atau no show jika 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

Latihan sendiri: Playground Kotlin