CodeBlanks Logo Icon CodeBlanks

Constructor türleri

Named ve default constructor'ları öğrenirsin.

Constructor nedir?

Bir constructor (yapıcı), yeni bir örnek oluşturulurken çağrılan özel metottur. Dart'ta yapıcının ismi sınıf ismiyle aynıdır; dönüş türü yazılmaz.

Örnek: class User { String name; User(this.name); }. Burada User(this.name) default constructor'dır; this.name kısayolu parametreyi doğrudan alana atar. Yapıcı new anahtar kelimesi olmadan, sınıf ismiyle çağrılır: User('Ayşe'). Dart'ta her sınıfın en fazla bir default constructor'ı olabilir; daha fazlası için named constructor kullanılır.

Default ve named

Dart'ta iki temel yapıcı türü vardır. Default constructor sınıf ismiyle aynıdır ve parametreleri doğrudan alana atar: User(this.name). Sınıf başına yalnızca bir tane yazılabilir.

İkinci bir yapıcı gerektiğinde named constructor kullanılır: User.guest() : name = 'Ziyaretçi';. Burada .guest eki yapıcıya bir isim verir. Aynı sınıfta hem default hem de birden çok named constructor yan yana durabilir; bu, Dart'ın aşırı yükleme (overloading) yerine kullandığı yöntemdir.

Uygulama User sınıfını tanımla

User adında bir sınıf tanımla. String name alanını ekle. User(this.name) biçiminde bir default constructor yaz. main içinde User('Ayşe') örneğini oluştur ve print ile name alanını yazdır.

Başlangıç kodu

main.dart
// User sınıfını tanımla
// String name alanını ekle
// Default yapıcıyı this.name kısayoluyla yaz

void main() {
  // User('Ayşe') örneğini oluştur ve adını yazdır
}

Örnek çözüm

main.dart
// User sınıfını tanımla
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 Hangisi geçerli bir Dart constructor bildirimidir?

  • User(this.name); Doğru cevap
  • function User(this.name);
  • constructor User(this.name);
  • new User(this.name);

Açıklama: Yapıcı, sınıf ismiyle aynı adda bir metot olarak bildirilir; ek anahtar kelime gerekmez.

2 Constructor gövdesini tamamla

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

Açıklama: this.name kısayolu parametreyi aynı isimli alana atar.

3 Yapıcı bölümlerini eşle

Kavram Anlamı
User Sınıf ve yapıcı ismi
this.name Alan atama kısayolu
User('Ayşe') Örnek oluşturma çağrısı

Orta seviye bölümündeki tüm dersler