Constructor
- Dart kursu
- Başlangıç
- Ders 78/116
- 5 dk
Sınıf yapıcı metodunu tanımlamayı öğrenirsin.
Constructor
Constructor, bir sınıftan örnek oluşturulduğunda çağrılan özel metottur. Sınıf adıyla aynı adı taşır. Örnek: class User { String name; User(this.name); }.
Burada User(this.name) kısa yazımıdır; bu, 'parametreyi aynı adlı özelliğe ata' demektir. Uzun yazım: User(String name) { this.name = name; }.
Constructor nesneyi hazırlar: özelliklere değer atar, kaynak ayrılır. User('Ayşe') çağrısı bir User örneği döndürür ve name özelliğine 'Ayşe' koyar. Bu ders this.name kısa yazımına odaklanır; this anahtar kelimesini ayrı bir derste göreceğiz.
Kısa ve uzun yazım
Dart constructor'larda kısa yazım çok kullanılır: User(this.name). Bu, 'parametreyi aynı adlı özelliğe ata' demektir. Sınıfın bir özelliği olan name otomatik olarak doldurulur.
Uzun yazım daha açıktır: User(String name) { this.name = name; }. Burada parametre name'i this.name ile özelliğe atarsın. this 'bu örnek' demektir.
İkisi de aynı işi yapar. Kısa yazım Dart'ın deyimsel (idiomatic) biçimidir; pratikte daha çok tercih edilir. Uzun yazım, ek mantık gerektiğinde işe yarar.
Uygulama User constructor
Bir User sınıfı tanımla; String name özelliği ve User(this.name) constructor'ı olsun. main içinde User('Ayşe') ile örnek oluştur ve print(u.name) ile yazdır.
Başlangıç kodu
void main() {
// User sınıfını ve constructor'ını tanımla
// örnek oluştur ve yazdır
}Örnek çözüm
class User {
String name;
User(this.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 Constructor parçalarını eşleştir
| Kavram | Anlamı |
|---|---|
User |
Constructor adı |
this.name |
Kısa atama |
User('Ayşe') |
Örnek oluşturma |
name |
Özellik adı |
2 User(this.name) ne yapar?
- Hata fırlatır
- name parametresini yok sayar
- Sınıfı siler
- name parametresini name özelliğine atar Doğru cevap
Açıklama: this.name kısa atama biçimidir.
3 Constructor kısa yazım
class User {
String name;
User(____);
}
class User {
String name;
User(this.name);
}
Açıklama: this.name parametreyi özelliğe atar.