Menu
Coddy logo textTech

Yapıcıların Temelleri

Coddy'nin Dart Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası. Ders 8 / 110.

Yapıcı, yeni bir nesne oluşturduğunuzda otomatik olarak çalışan özel bir yöntemdir. Nesnenin örnek değişkenlerini tam oluşturulduğu anda başlatır.

İşte kurucuya sahip bir sınıf örneği:

class Dog {
  String name;
  String breed;

  Dog(String name, String breed) {
    this.name = name;
    this.breed = breed;
  }
}

Yapıcı, sınıfla aynı ada sahiptir. Nesne oluşturulurken parametreler aktarılır.

Oluşturucuya bağımsız değişkenler geçirerek nesneler oluşturun:

Dog rex = Dog('Rex', 'German Shepherd');
Dog buddy = Dog('Buddy', 'Golden Retriever');

Yapıcı tarafından ayarlanan değişkenlere erişin:

print(rex.name);
print(rex.breed);
print(buddy.name);
print(buddy.breed);

Çıktı:

Rex
German Shepherd
Buddy
Golden Retriever

Dart ayrıca parametre listesinde doğrudan this.variableName kullanarak shorthand kurucu sözdizimi sunar:

class Dog {
  String name;
  String breed;

  // Kısayol: parametreleri otomatik olarak örnek değişkenlere atar
  Dog(this.name, this.breed);
}

Her iki sürüm de aynı sonucu üretir. shorthand, this.name = name ifadesini manuel olarak yazma gereğini ortadan kaldıran popüler bir Dart özelliğidir.

Ayrıca varsayılan parametre değerleri de ekleyebilirsiniz:

class Cat {
  String name;
  int age;

  Cat(this.name, [this.age = 1]); // age varsayılan olarak 1
}

Cat fluffy = Cat('Fluffy', 3);
Cat whiskers = Cat('Whiskers'); // age varsayılan olarak 1

print('${fluffy.name} is ${fluffy.age}');    // Fluffy 3'tür
print('${whiskers.name} is ${whiskers.age}'); // Whiskers 1'dir

Temel Nokta: Yapıcılar, her nesnenin oluşturulduğu anda verilerle düzgün şekilde başlatılmasını sağlayarak sizi daha sonra değişkenleri manuel olarak ayarlama zahmetinden kurtarır.

challenge icon

Görev

Kolay

Bir kitap sistemi uygulamak için size PHP dosyaları (book.dart ve driver.dart) verildi.

Görevleriniz:

  • title, author ve pages değerlerini başlatan bir kurucu ekleyerek book.dart dosyasındaki Book sınıfını tamamlayın: Dart kısaltılmış sözdizimini kullanın: Book(this.title, this.author, this.pages);
  • driver.dart dosyasında, 400 sayfalık, 'J.K. Rowling' tarafından yazılmış 'Harry Potter' için bir Book nesnesi oluşturun

Her dosyadaki TODO yorumlarını izleyin.

REQUIRED OUTPUT FORMAT: [Çevrilmiş içeriğiniz burada]

Kendin dene

import 'book.dart';

void main() {
  // TODO: Bir Book nesnesi oluşturun:
  // title: 'Harry Potter', author: 'J.K. Rowling', pages: 400
  Book myBook = ?;

  print("'${myBook.title}' by ${myBook.author}, ${myBook.pages} pages");
}
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Nesne Yönelimli Programlama bölümündeki tüm dersler

Kendi başına pratik yap: Online Dart derleyicisi