this
- Kotlin kursu
- Başlangıç
- Ders 110/116
- 5 dk
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
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
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
class Person(var name: String) {
fun set(name: String) {
____.name = name
}
}
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 |