CodeBlanks Logo Icon CodeBlanks

Enum özellikleri

Enum içinde özellik ve metot tanımlamayı öğrenirsin.

Enum özellikleri: yapıcı ve alan

Bir enum class yapıcı ve özellik alabilir. Her sabit, yapıcıya uygun bir değerle tanımlanır.

enum class Planet(val distance: Int) {
    MERCURY(57), VENUS(108), EARTH(150)
}
println(Planet.EARTH.distance)  // 150

Her sabit parantez içinde bir değer alır; bu değer distance özelliğine bağlanır. Böylece sabitlerin yanına anlamlı veri eklersin. Sabit ile veri birlikte yaşar; ayrı bir tablo gerekmez.

Enum içinde metod

Bir enum class içinde metod tanımlayabilirsin. Metod, sabitlerin özelliklerine erişebilir.

enum class Planet(val distance: Int) {
    MERCURY(57), VENUS(108), EARTH(150);
    fun isClose() = distance < 100
}
println(Planet.EARTH.isClose())  // false

Sabit listesinin sonuna noktalı virgül konur; ardından metod gelir. Metod içinde distance gibi özelliklere doğrudan erişirsin. Böylece davranışı da veriyle birlikte taşırsın.

Uygulama Mood enum'ına emoji ekle

Mood adında bir enum class tanımla; yapıcıda val emoji: String özelliği olsun. Sabitler: HAPPY(":)"), SAD(":("). main içinde HAPPY sabitinin emoji değerini yazdır.

Başlangıç kodu

Main.kt
fun main() {
    // Bir ruh hali türü tanımla ve bir sabitinin emojisini yazdır
}

Örnek çözüm

Main.kt
enum class Mood(val emoji: String) {
    HAPPY(":)"), SAD(":(")
}

fun main() {
    println(Mood.HAPPY.emoji)
}

Beklenen çıktı

:)

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Boşluğu doldur: özelliği tanımla

Soru
enum class Planet(val ____: Int) { MERCURY(57), VENUS(108) }
Cevap
enum class Planet(val distance: Int) { MERCURY(57), VENUS(108) }

Açıklama: val distance: Int özelliği yapıcı ile birlikte gelir.

2 enum class Planet(val distance: Int) ne tanımlar?

  • Bir arayüz
  • Sadece bir metod
  • Sadece sabitler
  • Bir özellik ve yapıcı Doğru cevap

Açıklama: distance özelliği yapıcı parametresinden gelir.

3 Parça ve rol eşleştir

Kavram Anlamı
distance Gezegen özelliği
MERCURY(57) Yapıcı çağrısı
isClose() Metod
57 Değer

4 Boşluğu doldur: metod çağır

Soru
val p = Planet.EARTH
val yakin = p.____()
Cevap
val p = Planet.EARTH
val yakin = p.isClose()

Açıklama: isClose() metodunu çağırırsın.

Başlangıç bölümündeki tüm dersler