Menu
Coddy logo textTech

Sınıfları Tanımlama

Coddy'nin Kotlin Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası. Ders 2 / 57.

Bir class, bir nesne türünü tanımlar: tuttuğu verileri ve yapabildiklerini. class Dog { ... } türü bildirir ve Dog() bu türden bir nesne, bir örnek oluşturur. Kotlin'de new anahtar sözcüğü yoktur:

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

main içinde:

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

Çıktı:

Rex
3

Bir sınıfın içindeki değişkenler onun özellikleridir. Her örneğin kendine ait bir kopyası vardır; nokta ile okunur ve değiştirilir:

class Dog {
    var name = "Rex"
}

main içinde:

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

Çıktı:

Rex
Bella

Bir sınıfın içindeki fonksiyon bir metottur (Kotlin bunlara üye fonksiyonlar der). Bir metot, çağrıldığı örneğin özelliklerini okuyabilir ve değiştirebilir:

class Counter {
    var count = 0

    fun increment() {
        count++
    }

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

main içinde:

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

Çıktı:

count is 2

Sınıf adları UpperCamelCase (BankAccount) kullanır; özellikler ve metotlar lowerCamelCase (balance, deposit()) kullanır. Verileri, bu veriler üzerinde çalışan işlevlerle gruplamak, nesne yönelimli programlamanın temel fikridir: bir Counter kullanan kod increment() çağrısını yapar ve sayının nasıl depolandığını bilmesine hiçbir zaman gerek kalmaz.

class BankAccount {
    var balance = 0

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

Görev

Kolay

Pet sınıfının describe() metodunu tamamla. Bu metot, özelliklerden oluşturulan bir cümle döndürür: adı Rex, türü dog ve yaşı 3 olan bir evcil hayvan için sonuç Rex is a 3 year old dog olur.

Sağlanan kod bir Pet oluşturur, özelliklerini girdiden (ad, tür, yaş) ayarlar ve describe() metodunun sonucunu yazdırır.

Kodun Pet.kt dosyasına yazılmalıdır. Main.kt sağlanan girdi/çıktı kodunu içerir ve düzenlenemez.

Kendin dene

fun main() {
    // Sağlanan girdi/çıktı kodu: olduğu gibi bırakın
    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 iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Nesne Yönelimli Programlama bölümündeki tüm dersler

Kendi başına pratik yap: Kotlin playground