Kotlin Academy · Ders

Enum Özellikleri ve İşlevleri

Davranış ekleyin

2. ders / 413 adım

Enum Özellikleri ve İşlevleri, CoddyKit'te ücretsiz bir Kotlin Academy dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Kotlin Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Kotlin Academy kursu toplamda 4 dersten oluşur.

Numaralandırmalar Veri Taşıyabilir

Numaralandırma sabitleri özellikler taşıyabilir. Numaralandırma sınıfında bir kurucu bildirin ve her sabiti listelerken değerleri gönderin.

enum class Coin(val cents: Int) {
    PENNY(1), NICKEL(5), DIME(10)
}

fun main() {
    println(Coin.DIME.cents)
}

Kurucu Parametreleri

Her sabitten sonra parantez içinde yer alan değerler, numaralandırma kurucusuna gönderilen bağımsız değişkenlerdir. Bu değerler, ilgili sabitte salt okunur özelliklere dönüşür.

enum class Planet(val gravity: Double) {
    EARTH(9.8), MOON(1.6)
}

fun main() {
    println(Planet.MOON.gravity)
}

Birden Çok Özellik

Bir numaralandırma aynı anda birkaç özellik bildirebilir.

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}")
}

Yöntem Ekleme

Numaralandırmanın gövdesinde normal işlevler bildirebilirsiniz. Her sabit bu işlevleri paylaşır.

enum class Temp(val celsius: Int) {
    COLD(5), WARM(25);

    fun toFahrenheit(): Int = celsius * 9 / 5 + 32
}

fun main() {
    println(Temp.WARM.toFahrenheit())
}

Noktalı Virgül Kuralı

Bir numaralandırmada sabitlerin ötesinde üyeler (yöntemler veya özellikler) varsa son sabitten sonra noktalı virgül koymanız gerekir.

enum class Op {
    ADD, SUB;

    fun describe() = "Operation: $name"
}

fun main() {
    println(Op.ADD.describe())
}

Her Sabit İçin Soyut Yöntemler

Numaralandırmalar, her sabitin üzerine yazdığı soyut yöntemleri bildirebilir; böylece her sabit kendi davranışına sahip olur.

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))
}

Hesaplanan Özellikler

Özellik alıcıları, değerleri sabitin verilerine göre hesaplayabilir.

enum class Account(val balance: Int) {
    SAVINGS(1000), CHECKING(50);

    val isRich: Boolean get() = balance > 500
}

fun main() {
    println(Account.SAVINGS.isRich)
}

Veri ve Davranışı Birleştirme

Özellikler ve yöntemler, bir numaralandırmanın kapsamlı ve kapalı bir alanı modellemesini sağlar.

enum class Shape(val sides: Int) {
    TRIANGLE(3), SQUARE(4);

    fun describe() = "$name has $sides sides"
}

fun main() {
    println(Shape.SQUARE.describe())
}

Mantıkta Özellikleri Kullanma

Sabit özellikleri hesaplamalarda ve koşullarda kullanışlıdır.

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))
}

Varsayılan Özellik Değerleri

Numaralandırma kurucuları da diğer kurucular gibi varsayılan parametre değerlerini destekler.

enum class Role(val canEdit: Boolean = false) {
    VIEWER, EDITOR(true)
}

fun main() {
    println(Role.VIEWER.canEdit)
    println(Role.EDITOR.canEdit)
}

Tam Bir Model

Burada bir numaralandırma, hem veri hem de davranış içeren HTTP durumlarını modeller.

enum class Http(val code: Int) {
    OK(200), NOT_FOUND(404);

    fun isError() = code >= 400
}

fun main() {
    println(Http.NOT_FOUND.isError())
}

Kısa Kontrol

Numaralandırma özellikleri ve yöntemleri konusundaki anlayışınızı sınayın.

Özet

Numaralandırmaların davranış taşıyabileceğini öğrendiniz:

  • Sabitlere özellik kazandırmak için kurucu ekleyin.
  • Paylaşılan yöntemleri bildirin (sabitlerden sonra noktalı virgül kullanın).
  • Soyut yöntemler, her sabitin kendi davranışını tanımlamasını sağlar.
  • Hesaplanan ve varsayılan değerli özellikler normal şekilde çalışır.
enum class Coin(val cents: Int) {
    PENNY(1), DIME(10);
    fun double() = cents * 2
}

fun main() {
    println(Coin.DIME.double())
}
Başlamak ücretsiz

Yapay zeka eğitmeniyle Kotlin öğren — ücretsiz

Tarayıcında gerçek kod yaz ve çalıştır, 7/24 yapay zeka eğitmeninden anında yardım al; web'de ya da uygulamada kaldığın yerden devam et.

Kurslar
51
Dersler
203

Sıkça Sorulan Sorular

“Enum Özellikleri ve İşlevleri” dersi ücretsiz mi?

Evet — “Enum Özellikleri ve İşlevleri” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Kotlin Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Kotlin Academy kursu toplamda 4 dersten oluşur.

“Enum Özellikleri ve İşlevleri” dersinde ne öğreneceğim?

Davranış ekleyin Kotlin Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Kotlin Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Kotlin Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.

“Enum Özellikleri ve İşlevleri” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Kotlin Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Kotlin Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Enum Tanımlama
  2. Enum Özellikleri ve İşlevleri
  3. when ile Enum'lar
  4. Enum Değerleri ve Sıra Numaraları
← Kotlin Academy Sayfasına Dön