CodeBlanks Logo Icon CodeBlanks

this

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

this anahtar kelimesi

this, bir metot içinde 'bu örnek' demektir. En çok constructor'larda, parametre ile özellik adı çakıştığında kullanılır. Örnek: User(String name) { this.name = name; }.

Burada name parametreyi, this.name özelliği belirtir. this olmadan iki name karıştırılır; atama yapılmaz. Bu yüzden ayraç olarak this şarttır.

İki tarafın adı farklıysa this gerekmez: User(String n) { name = n; }. Ancak Dart kısa yazım User(this.name) biçimini tercih eder; bu zaten this içerir. this'in uzun yazımda yeri vardır.

this ve kısa yazım

this açıkça yazılabileceği gibi, Dart'ın kısa constructor yazımında örtülü olarak da kullanılır. User(this.name), aslında User(String name) { this.name = name; } ile aynıdır; sadece daha kısadır.

Kısa yazım, parametre adı özellik adıyla aynı olduğunda işe yarar. Farklıysa uzun yazım gerekir. Örnek: User(String fullName) { name = fullName; } — burada this şart değil.

Pratikte Dart geliştiricileri kısa yazımı tercih eder. Bu, hem daha az kod hem de this kullanımını otomatik hale getirir. Uzun yazım ise ek mantık gerektiğinde (örneğin validasyon) elzemdir.

Uygulama this ile atama

Bir User sınıfı tanımla; String name özelliği olsun. Constructor User(String name) gövdesinde this.name = name atamasını yap. main içinde User('Ayşe') örneği oluştur ve print(u.name) ile yazdır.

Başlangıç kodu

main.dart
void main() {
  // User sınıfını tanımla

  // örnek oluştur ve yazdır
}

Örnek çözüm

main.dart
class User {
  String name;
  User(String name) {
    this.name = name;
  }
}

void main() {
  var u = User('Ayşe');
  print(u.name);
}

Beklenen çıktı

Ayşe

Soru ve cevaplar

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

1 this.name = name ne yapar?

  • name özelliğini name parametresine atar
  • İkisini de siler
  • Hata fırlatır
  • name parametresini name özelliğine atar Doğru cevap

Açıklama: this.name özellik, name parametre; atama özelliğe olur.

2 this kullanımı

Soru
class User {
  String name;
  User(String name) {
    ____ = name;
  }
}
Cevap
class User {
  String name;
  User(String name) {
    this.name = name;
  }
}

Açıklama: this.name özellik, name parametre.

3 this kavramlarını eşleştir

Kavram Anlamı
this Bu örnek
this.name Özellik
name Parametre ( constructor )
this.name = name Atama

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