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
3Variabel 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
BellaFungsi 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 2Nama 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
}
}Tantangan
MudahLengkapi 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())
}
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
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