Ringkasan: Kartu Perpustakaan
Termasuk bagian Pemrograman Berorientasi Objek dalam perjalanan Kotlin di Coddy. Pelajaran 6 dari 57.
Tantangan
SedangDeklarasikan class LibraryCard(val name: String, val limit: Int = 3). Blok init-nya mewajibkan name yang tidak kosong (name is empty) dan limit minimal 1 (limit must be positive). Class ini menyimpan list judul yang dipinjam. borrow(title) mengembalikan true dan menambahkan judul, kecuali jika kartu sudah mencapai batas atau sudah memiliki judul tersebut. giveBack(title) mengembalikan true jika judul tersebut berhasil dihapus. status() mengembalikan Ada: 2/3 (Dune, Emma) sesuai urutan peminjaman, atau Ada: 0/3 jika tidak ada yang dipinjam.
Kode yang disediakan membaca name, limit (atau baris kosong untuk menggunakan nilai default), lalu perintah +title atau -title. Kode tersebut mencetak ok atau no untuk setiap perintah, lalu mencetak status(); jika kartu tidak valid, kode tersebut mencetak pesan error.
Tulis kodemu di LibraryCard.kt. Main.kt berisi kode input/output yang disediakan dan tidak dapat diedit.
Coba sendiri
fun main() {
// Kode input/output yang disediakan: biarkan apa adanya
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)
}
}
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 BukuLatihan sendiri: Playground Kotlin