CodeBlanks Logo Icon CodeBlanks

Özet - Sınıf temelleri

class, constructor ve metotları birleştirerek bir User sınıfı yazarsın.

Özet - Sınıf temelleri

Bu grupta class ile yeni tür tanımlamayı, birincil yapıcı ile özellik oluşturmayı, val/var özelliklerini, sınıf içinde metod yazmayı ve this ile parametre-özellik çakışmasını çözmeyi öğrendin.

Şimdi hepsini birleştiren küçük bir görevle bilgini sınamak gerekiyor: bir sınıfa özellik, metod ve this kullanan bir yeniden adlandırma metodu ekle. Bu, gerçek bir sınıf tasarımının küçük bir örneğidir.

Uygulama Person'a rename ve greet ekle

class Person(var name: String) tanımla; gövdesine fun greet() = "Merhaba $name" ve fun rename(name: String) { this.name = name } ekle. main içinde val p = Person("Ayşe") oluştur, p.rename("Alex") çağır ve println ile p.greet()'i yazdır.

Başlangıç kodu

Main.kt
fun main() {
    // Bir Person sınıfı tanımla: name özelliği, greet ve rename metoduyla
    // rename this ile parametreyi ayırmalı; örnek oluştur, rename ve greet çağır
}

Örnek çözüm

Main.kt
class Person(var name: String) {
    fun greet() = "Merhaba $name"
    fun rename(name: String) {
        this.name = name
    }
}

fun main() {
    val p = Person("Ayşe")
    p.rename("Alex")
    println(p.greet())
}

Beklenen çıktı

Merhaba Alex

Soru ve cevaplar

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

1 Araç ve amacı eşleştir

Kavram Anlamı
class Sınıf
constructor Yapıcı
val/var Özellik
fun Metod

2 this neyi ifade eder?

  • this parametre için kullanılmaz
  • this şu anki nesneyi verir Doğru cevap
  • this bir özelliktir
  • this her zaman gereklidir

Açıklama: this şu anki örneğe işaret eder.

3 Boşluğu doldur: this ile ata

Soru
fun rename(name: String) {
    ____.name = name
}
Cevap
fun rename(name: String) {
    this.name = name
}

Açıklama: this.name özelliğe işaret eder.

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