Menu
Coddy logo textTech

Varsayılan Yapıcı

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

Bir sınıfta herhangi bir oluşturucu tanımlamadığınızda Dart otomatik olarak bir varsayılan oluşturucu sağlar. Bu, parametresi olmayan ve yalnızca sınıfın bir örneğini oluşturan bir oluşturucudur.

class Book {
  String title = 'Unknown';
  int pages = 0;
}

// Dart varsayılan bir yapıcı sağlar: Book()
Book myBook = Book();
print(myBook.title); // Unknown

Varsayılan oluşturucu kodunuzda görünmezdir, ancak vardır. Hiçbir bağımsız değişken almaz ve nesneyi örnek değişkenlerine atadığınız varsayılan değerlerle başlatır.

Kendi kurucunuzu tanımladığınızda, varsayılan kurucu artık otomatik olarak sağlanmaz. Parametreli kurucunun yanında hâlâ bağımsız değişken almayan bir kurucu istiyorsanız, onu açıkça oluşturmalısınız:

class Book {
  String title;
  int pages;

  // Açık varsayılan yapıcı
  Book() : title = 'Unknown', pages = 0;

  // Parametreli yapıcı
  Book.withDetails(this.title, this.pages);
}

Book book1 = Book();                      // Varsayılanı kullanır
Book book2 = Book.withDetails('Dart', 300); // Parametreliyi kullanır

Açık varsayılan yapıcı, başlangıç değerlerini ayarlamak için bir başlatıcı listesi (iki nokta üst üste işaretinden sonraki bölüm) kullanır. Bu desen, aynı sınıftan nesneler oluşturmak için birden fazla yol sunmak istediğinizde kullanışlıdır.

challenge icon

Görev

Kolay

Hem örtük hem de açık varsayılan yapıcıları gösteren basit bir ürün envanter sistemi oluşturalım.

Kodunuzu düzenlemek için iki dosya oluşturacaksınız:

  • product.dart: Ürün oluşturmanın iki yolunu sunan bir Product sınıfı tanımlayın:
    • Product() değerini name ve 'Unnamed' değerini price olarak bir başlatıcı listesi kullanarak başlatan açık varsayılan yapıcı 0.0
    • Product.withDetails ve name parametrelerini kabul eden adlandırılmış yapıcı price
    • Şunu yazdıran bir display() yöntemi: Product: [name] - $[price]
  • main.dart: Ürün sınıfınızı içe aktarın ve iki ürün oluşturun:
    • Birini varsayılan yapıcıyı kullanarak oluşturun
    • Birini adlandırılmış yapıcıyı 'Laptop' ve 999.99 ile kullanarak oluşturun
    Her ürün için display() yöntemini çağırın.

Product sınıfınızın iki örnek değişkeni olmalıdır:

  • String name
  • double price

Beklenen çıktı biçimi:

Product: Unnamed - $0.0
Product: Laptop - $999.99

Kendin dene

import 'product.dart';

void main() {
  // YAPILACAK: Varsayılan yapıcıyı kullanarak bir ürün oluşturun
  
  // YAPILACAK: 'Laptop' ve 999.99 ile isimlendirilmiş yapıcıyı kullanarak bir ürün oluşturun
  
  // YAPILACAK: Her ürün üzerinde display() metodunu çağırın
}
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