Menu
Coddy logo textTech

Constructor Temelleri

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

Bir yapıcı (constructor), yeni bir nesne oluşturduğunuzda otomatik olarak çalışan özel bir metottur. Nesnenin örnek değişkenlerini tam oluşturulma anında başlatır.

İşte bir yapıcı (constructor) içeren sınıf örneği:

class Dog {
  String name;
  String breed;

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

Yapıcı metot (constructor) sınıf ile aynı isme sahiptir. Parametreler nesne oluşturulurken iletilir.

Kurucu metoda argümanlar ileterek nesneler oluşturun:

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

Yapıcı (constructor) 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 kısa yol yapıcı (constructor) sözdizimi sunar:

class Dog {
  String name;
  String breed;

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

Her iki sürüm de aynı sonucu verir. Kısa yazım, this.name = name ifadesini manuel olarak yazma ihtiyacını 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 olur
}

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

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

Önemli Nokta: Yapıcılar (Constructors), her nesnenin oluşturulduğu anda verilerle düzgün bir ş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) verilmiştir.

Görevleriniz:

  • book.dart dosyasındaki Book sınıfını; title, author ve pages değişkenlerini başlatan bir yapıcı (constructor) ekleyerek tamamlayın — Dart kısa yazım sözdizimi olan Book(this.title, this.author, this.pages); kullanın.
  • driver.dart dosyasında, 'J.K. Rowling' tarafından yazılan, 400 sayfalık 'Harry Potter' için bir Book nesnesi oluşturun.

Her dosyadaki TODO yorumlarını takip edin.

Kopya kağıdı

Yapıcı (constructor), yeni bir nesne oluşturduğunuzda otomatik olarak çalışan özel bir metottur. Nesnenin örnek değişkenlerini (instance variables) oluşturulma anında başlatır.

Yapıcı, sınıfla aynı ada sahiptir:

class Dog {
  String name;
  String breed;

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

Yapıcıya argümanlar göndererek nesneler oluşturun:

Dog rex = Dog('Rex', 'German Shepherd');

Dart, parametre listesinde doğrudan this.variableName kullanarak kısa bir yapıcı söz dizimi sunar:

class Dog {
  String name;
  String breed;

  Dog(this.name, this.breed);
}

İsteğe bağlı konumsal parametreleri (optional positional parameters) kullanarak varsayılan parametre değerleri ekleyebilirsiniz:

class Cat {
  String name;
  int age;

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

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

Kendin dene

import 'book.dart';

void main() {
  // TODO: Şu özelliklere sahip 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