Menu
CoddyTech

Mendefinisikan class

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

Sebuah class menjelaskan jenis object: data yang disimpan dan hal yang dapat dilakukannya. class Dog { ... } mendeklarasikan tipe, dan Dog() membuat object dari tipe tersebut, sebuah instans. Kotlin tidak memiliki kata kunci new:

class Dog {
    var name = "Rex"
    var age = 3
}

Di dalam main:

val dog = Dog()
println(dog.name)
println(dog.age)

Output:

Rex
3

Variabel di dalam class adalah property-nya. Setiap instance memiliki salinannya sendiri, yang dibaca dan diubah dengan titik:

class Dog {
    var name = "Rex"
}

Di dalam main:

val first = Dog()
val second = Dog()
second.name = "Bella"
println(first.name)
println(second.name)

Output:

Rex
Bella

Fungsi di dalam class adalah method (Kotlin menyebutnya fungsi anggota). Method dapat membaca dan mengubah property dari instance tempat method itu dipanggil:

class Counter {
    var count = 0

    fun increment() {
        count++
    }

    fun report() = "count is $count"
}

Di dalam main:

val clicks = Counter()
clicks.increment()
clicks.increment()
println(clicks.report())

Output:

count is 2

Nama class menggunakan UpperCamelCase (BankAccount); property dan method menggunakan lowerCamelCase (balance, deposit()). Mengelompokkan data dengan fungsi yang mengolahnya adalah gagasan utama pemrograman berorientasi object: kode yang menggunakan Counter memanggil increment() dan tidak perlu mengetahui cara jumlahnya disimpan.

class BankAccount {
    var balance = 0

    fun deposit(amount: Int) {
        balance += amount
    }
}
challenge icon

Tantangan

Mudah

Lengkapi method describe() dari class Pet. Method ini mengembalikan satu kalimat yang dibuat dari property: hewan peliharaan bernama Rex, spesies dog, dan berusia 3 menghasilkan Rex is a 3 year old dog.

Kode yang disediakan membuat sebuah Pet, mengatur property-nya dari input (nama, spesies, usia), lalu mencetak hasil describe().

Tulis kodemu di Pet.kt. Main.kt berisi kode input/output yang disediakan dan tidak dapat diedit.

Coba sendiri

fun main() {
    // Kode input/output sudah disediakan: biarkan apa adanya
    val input = generateSequence(::readLine).toList()
    val pet = Pet()
    pet.name = input[0]
    pet.species = input[1]
    pet.age = input[2].toInt()
    println(pet.describe())
}
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Pemrograman Berorientasi Objek

Latihan sendiri: Playground Kotlin