CodeBlanks Logo Icon CodeBlanks

Constructor

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

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

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

Örnek çözüm

main.dart
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

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

Açıklama: this.name parametreyi özelliğe atar.

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