Properti dan Metode Enum
Tambahkan perilaku
Properti dan Metode Enum adalah pelajaran Kotlin Academy gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Kotlin Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Kotlin Academy mencakup 4 pelajaran total.
Enum Dapat Menyimpan Data
Konstanta enum dapat membawa properti. Deklarasikan konstruktor pada kelas enum, lalu teruskan nilai saat mencantumkan setiap konstanta.
enum class Coin(val cents: Int) {
PENNY(1), NICKEL(5), DIME(10)
}
fun main() {
println(Coin.DIME.cents)
}Parameter Konstruktor
Nilai dalam tanda kurung setelah setiap konstanta merupakan argumen untuk konstruktor enum. Nilai tersebut menjadi properti hanya-baca pada konstanta itu.
enum class Planet(val gravity: Double) {
EARTH(9.8), MOON(1.6)
}
fun main() {
println(Planet.MOON.gravity)
}Beberapa Properti
Enum dapat mendeklarasikan beberapa properti sekaligus.
enum class Fruit(val color: String, val calories: Int) {
APPLE("red", 95),
BANANA("yellow", 105)
}
fun main() {
val f = Fruit.BANANA
println("${f.color} ${f.calories}")
}Menambahkan Metode
Anda dapat mendeklarasikan fungsi biasa di dalam isi enum. Setiap konstanta menggunakannya bersama-sama.
enum class Temp(val celsius: Int) {
COLD(5), WARM(25);
fun toFahrenheit(): Int = celsius * 9 / 5 + 32
}
fun main() {
println(Temp.WARM.toFahrenheit())
}Aturan Titik Koma
Jika enum memiliki anggota selain konstanta (metode atau properti), Anda harus menempatkan titik koma setelah konstanta terakhir.
enum class Op {
ADD, SUB;
fun describe() = "Operation: $name"
}
fun main() {
println(Op.ADD.describe())
}Metode Abstrak per Konstanta
Enum dapat mendeklarasikan metode abstrak yang ditimpa oleh setiap konstanta, sehingga setiap konstanta memiliki perilakunya sendiri.
enum class Math {
PLUS { override fun apply(a: Int, b: Int) = a + b },
TIMES { override fun apply(a: Int, b: Int) = a * b };
abstract fun apply(a: Int, b: Int): Int
}
fun main() {
println(Math.TIMES.apply(3, 4))
}Properti Terhitung
Pengambil properti dapat menghitung nilai berdasarkan data konstanta.
enum class Account(val balance: Int) {
SAVINGS(1000), CHECKING(50);
val isRich: Boolean get() = balance > 500
}
fun main() {
println(Account.SAVINGS.isRich)
}Menggabungkan Data dan Perilaku
Properti dan metode memungkinkan enum memodelkan ranah tertutup yang kaya.
enum class Shape(val sides: Int) {
TRIANGLE(3), SQUARE(4);
fun describe() = "$name has $sides sides"
}
fun main() {
println(Shape.SQUARE.describe())
}Menggunakan Properti dalam Logika
Properti konstanta berguna dalam perhitungan dan kondisi.
enum class Tier(val discount: Int) {
BRONZE(5), GOLD(20)
}
fun price(base: Int, tier: Tier) = base - base * tier.discount / 100
fun main() {
println(price(100, Tier.GOLD))
}Nilai Properti Bawaan
Konstruktor enum mendukung nilai parameter bawaan seperti konstruktor lainnya.
enum class Role(val canEdit: Boolean = false) {
VIEWER, EDITOR(true)
}
fun main() {
println(Role.VIEWER.canEdit)
println(Role.EDITOR.canEdit)
}Model Lengkap
Di sini, enum memodelkan status HTTP dengan data dan perilaku.
enum class Http(val code: Int) {
OK(200), NOT_FOUND(404);
fun isError() = code >= 400
}
fun main() {
println(Http.NOT_FOUND.isError())
}Pemeriksaan Singkat
Uji pemahaman Anda tentang properti dan metode enum.
Ringkasan
Anda telah mempelajari bahwa enum dapat membawa perilaku:
- Tambahkan konstruktor untuk memberikan properti kepada konstanta.
- Deklarasikan metode bersama (gunakan titik koma setelah konstanta).
- Metode abstrak memungkinkan setiap konstanta menentukan perilakunya sendiri.
- Properti terhitung dan properti dengan nilai bawaan berfungsi seperti biasa.
enum class Coin(val cents: Int) {
PENNY(1), DIME(10);
fun double() = cents * 2
}
fun main() {
println(Coin.DIME.double())
}Pertanyaan yang Sering Diajukan
Apakah pelajaran “Properti dan Metode Enum” gratis?
Ya — teks lengkap “Properti dan Metode Enum” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Kotlin Academy, upgrade ke CoddyKit PRO. Kursus Kotlin Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Properti dan Metode Enum”?
Tambahkan perilaku Kamu berlatih Kotlin Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Kotlin Academy?
Tidak diperlukan pengalaman sebelumnya. Kotlin Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.
Berapa lama pelajaran “Properti dan Metode Enum” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Kotlin Academy ini?
Ya. Setiap pelajaran Kotlin Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Mendefinisikan Enum
- Properti dan Metode Enum
- Enum dengan when
- Nilai dan Ordinal Enum