Dart Dilinde Kurucu Metotlar (Constructor)

Dart dilinde kurucu metotlar, bir başka deyişle yapıcı metotlar, bir sınıftan (class) nesne (object) üretirken kullanılan yapılardır.

Dart Dilinde Kurucu Metotlar

Kurucu metotlara ait genel özellikleri maddeler halinde aşağıda derlenmiştir:

  • Bir sınıftan nesne üretirken kullanılır.
  • Kod olarak yazılmasa dahi varsayılan olarak varlardır.
  • Bir sınıftan nesne ürettiğimizde otomatik olarak çalışır.
  • Bir sınıftan üretilen her yeni nesne ayrı ayrı varsayılan olarak kurucu metodu çalıştırır.
  • Kurucu (yapıcı) metotlar parametre alabildiği gibi boş da olabilir.
  • Bu metotlar geri dönüş (return) yapmazlar
  • Varsayılan kurucu metot ancak 1 kere oluşturulabilir.
  • İsimlendirilmiş kurucu metot ise farklı isimlerde olmak şartıyla istenilen sayıda oluşturulabilir.
  • Kurucu metodun adı, sınıf adıyla aynı olmalıdır.

Aşağıda kurucu metodu oluştururken kullanılan sözdizimi (syntax) gösterilmiştir:

Kurucu metotların özelliklerini belirtirken kod olarak yazılmasa dahi otomatik olarak program onu çalıştırır demiştik. Bu durumu aşağıdaki örneklerde görebilirsiniz:

Çıktı:

Arabanın modeli: 2002
Arabanın markası: Kırmızı

Şimdi aynı örneğimizi kurucu metodun kodunu yazarak gösterelim:

Çıktı:

Arabanın modeli: 2002
Arabanın markası: Kırmızı

Kodu çalıştırmak için: DartPad

Kurucu Metot Çeşitleri

Dart’ta 3 adet kurucu metot çeşidi bulunmaktadır. Bunlar sırasıyla aşağıdaki gibidir:

  • Varsayılan Kurucu Metotlar (Default Constructor)
  • Parametre Alan Kurucu Metotlar (Parameterized Constructor)
  • İsimlendirilmiş Kurucu Metotlar (Named Constructor)

Varsayılan Kurucu Metot (Default Constructor)

Bunlar yukarıdaki anlattığımız örneklerde gördüğümüz kurucu metotlardır. Eğer herhangi bir kurucu metot oluşturulmazsa, derleyici sınıf için otomatik olarak varsayılan bir kurucuyu (argümansız) oluşturur.

Parametre Alan Kurucu Metotlar (Parameterized Constructor)

Kurucu metotlar, örnek değişkenlerini başlatmak için kullanılan parametreleri de alabilir. Adından da anlaşılacağı üzere parametre alan bu kurucu metotlara parametre alan kurucu metotlar denir. Özellikle örnek değişkenleri kendi değerleriyle başlatmak istiyorsak, parametreli bir kurucu kullanmamız gerekir.

Çıktı:

Kurucu metot (constructor) çalıştı
Arabanın özellikleri
Arabanın modeli: 2020
Arabanın rengi: Mavi

Kodu çalıştırmak için: DartPad

İsimlendirilmiş Kurucu Metotlar (Named Constructor)

Dart dilinde isimlendirilmiş kurucu metotlar, diğer iki kurucu metot türünden farklı olarak bir sınıfın birden çok kurucu metot tanımlayabilmesini sağlar. Aynı isimdeki sınıfımıza ait farklı özellikteki nesnelerini oluşturmak için bu yöntem kullanılır. Zira nesne üretirken kurucu metoda tanımladığımız parametrelerin hepsini kullanmak istemeyebiliriz.

İsimlendirilmiş kurucu metotların sözdizimi aşağıdaki gibidir:

Çıktı:

Parametre Alan Kurucu Metot çalıştı
Arabanın özellikleri
Arabanın modeli: 2020
Arabanın rengi: Mavi
Birinci isimlendirilmiş kurucu metot çalıştı
Arabanın özellikleri
Arabanın modeli: 2010
Arabanın rengi: Pembe
İkinci isimlendirilmiş kurucu metot çalıştı
Arabanın özellikleri
Arabanın modeli: 2002
Arabanın rengi: Turuncu

Kodu çalıştırmak için: DartPad

İlgili Makaleler

2 Yorum

    1. Kurucular (constructors) bir nesnenin örneklendiği zaman çalıştırılan fonksiyonlardır. Nesnenin doğru bir şekilde başlatılmasını sağlamak için kullanılırlar.

      Kurucunun temel amacı, sınıftan bir nesne oluşturulduğunda bu nesnenin başlangıç durumunu ayarlamaktır. Eğer bir kurucu bir değer döndürebilseydi, bu durumda ne tür bir değeri döndüreceği sorusu ortaya çıkardı. Kurucunun dönüş değeri, o sınıftan oluşturulan yeni nesne olmalıdır ve bu nedenle kurucuların geriye bir değer döndürmesine gerek yoktur.

      Özetle, kurucuların geriye değer döndürmemesinin nedeni, onların temel işlevinin nesneyi başlatmak olduğudur. Bu işlevi yerine getirdikten sonra, kurucunun dönüş değeri olarak oluşturduğu nesnenin kendisi kullanılır. Bu nedenle, kurucuların herhangi bir değer döndürmesine ihtiyaç duyulmaz.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu