CodeBlanks Logo Icon CodeBlanks

this

this ile sınıfın kendisine erişmeyi öğrenirsin.

this: şu anki nesne

this anahtar sözcüğü, metodun içinde şu anki örneğe işaret eder. Parametre adı özellik adıyla çakıştığında this ile ikisini ayırırsın.

class Person(var name: String) {
    fun rename(name: String) {
        this.name = name
    }
}

this.name özelliğe, name ise parametreye işaret eder. Atama, parametreyi özelliğe kopyalar. this kullanımı çakışma olmadığında zorunlu değildir.

this ne zaman gerekir?

this yalnızca bir parametre özellik adıyla çakıştığında zorunludur. Çakışma yoksa Kotlin özelliği otomatik bulur.

class Person(var name: String) {
    fun rename(newName: String) {
        name = newName  // this gerekmez
    }
}

newName ile name çakışmaz; bu yüzden this atlanabilir. Çakışma varsa this şarttır, yoksa atama yanlış yere gider. Anlaşılırlık için çakışma yokken de this kullanabilirsin.

Uygulama Person'a set metodu ekle

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

Başlangıç kodu

Main.kt
fun main() {
    // Bir Person sınıfı tanımla: name özelliği ve set metoduyla
    // set metodu this kullanarak parametreyi ayırmalı
    // Bir örnek oluştur, set ile adı değiştir, yazdır
}

Örnek çözüm

Main.kt
class Person(var name: String) {
    fun set(name: String) {
        this.name = name
    }
}

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

Beklenen çıktı

Alex

Soru ve cevaplar

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

1 Boşluğu doldur: this ile ata

Soru
class Person(var name: String) {
    fun set(name: String) {
        ____.name = name
    }
}
Cevap
class Person(var name: String) {
    fun set(name: String) {
        this.name = name
    }
}

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

2 this ne zaman kullanılır?

  • Parametre özellik adıyla çakıştığında Doğru cevap
  • Her zaman
  • Asla
  • Sadece static metodlarda

Açıklama: parametre özellik adıyla çakıştığında. this ikisini ayırır.

3 İfade ve anlam eşleştir

Kavram Anlamı
this.name Özelliğe erişim
name Parametre
this Şu anki nesne
= name Atama

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