this
- Dart kursu
- Başlangıç
- Ders 81/116
- 5 dk
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
void main() {
// User sınıfını tanımla
// örnek oluştur ve yazdır
}Örnek çözüm
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ı
class User {
String name;
User(String name) {
____ = name;
}
}
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 |