Ana içeriğe geç

Constructor

Türkçe karşılığı
yapıcı metot, kurucu metot
Okunuşu
kınstraktır

Günlük kullanımda çoğunlukla İngilizcesi tercih edilir.

Güncellendi 1 dk okuma

Bu sayfayı paylaşın

Bağlantıyı gönderin, tanımı bağlantısıyla birlikte alıntılayın ya da kendi sitenizde bir kart olarak gösterin.

https://softwaredictionary.org/tr/terimler/constructor

Kısaca

Constructor, bir sınıftan yeni bir nesne oluşturulduğunda çalışan ve nesnenin başlangıç değerlerini ayarlayarak onu kullanıma hazırlayan özel bir metottur.

Constructor (yapıcı metot) nedir?

Constructor, yeni bir nesne oluşturduğunuzda kendiliğinden çalışan koddur. Görevi nesneyi geçerli bir başlangıç durumuna getirmektir: verilen değerleri saklamak, varsayılanları atamak ve girdinin mantıklı olup olmadığını kontrol etmek. JavaScript ve TypeScript'te constructor adlı bir metottur, Python'da __init__, Java ve C#'ta ise sınıfla aynı adı taşıyan ve dönüş tipi olmayan bir metottur.

Constructor'ı nadiren adıyla çağırırsınız. JavaScript, Java ve C#'ta new User("Ada") örneğindeki gibi new yazarsınız; Python'da ise sınıfı bir fonksiyon gibi çağırırsınız: User("Ada"). Verdiğiniz argümanlar constructor'ın parametrelerine gider. Bir sınıf nesne oluşturmanın birkaç yolunu sunabilir: Java ve C# farklı parametre listeleriyle overloading'e izin verir; overloading olmayan diller ise varsayılan değerler ya da User.fromJson() gibi adlandırılmış fabrika metotları kullanır.

Constructor, banka hesabı açarkenki kuruluma benzer: hesabı kullanabilmeniz için banka önce adınızı kaydeder, bir hesap numarası verir ve bakiyeyi sıfırlar. Bir alt sınıfta constructor genellikle önce üst sınıfın constructor'ını çağırır; JavaScript, Java ve Python'da bunu super() ile yapar, böylece nesnenin miras alınan kısmı da kurulur. Constructor'ı kısa tutmak ve ağ çağrısı gibi yavaş işlerden uzak tutmak, nesneleri oluşturmayı ve test etmeyi kolaylaştırır.

Önemli noktalar

  • Constructor, bir sınıftan yeni bir nesne oluşturulduğunda kendiliğinden çalışır.
  • Görevi nesneye geçerli bir başlangıç durumu vermektir.
  • JavaScript'te constructor, Python'da __init__ adını taşır; Java ve C#'ta sınıfın adını alır.
  • Alt sınıfın constructor'ı, üst sınıfın constructor'ını super() ile çağırır.

Örnek

JavaScript'te constructor'ı olan bir sınıfjavascript
class Account {
  constructor(owner, balance = 0) {
    if (!owner) throw new Error("An account needs an owner");
    this.owner = owner;     // store what was passed in
    this.balance = balance; // or fall back to a default
  }
}

const account = new Account("Ada"); // runs the constructor
console.log(account.balance);       // 0

Sık sorulan sorular

Constructor ile metot arasındaki fark nedir?

Metot zaten var olan bir nesne üzerinde, gerektiği kadar çağrılır. Constructor ise nesne oluşturulurken bir kez çalışır ve tek işi onu kurmaktır. Kendine ait bir değer döndürmez, çünkü sonuç yeni nesnenin kendisidir.

Constructor private olabilir mi?

Evet; Java, C# ve TypeScript gibi dillerde olabilir. Private bir constructor, başka kodun doğrudan new çağırmasını engeller. Böylece bir sınıf, çağıranları bir fabrika metoduna yönlendirebilir ya da singleton deseninde olduğu gibi yalnızca tek bir örneğe izin verebilir.

İlgili sayfalar

Kaynaklar

Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin

Daha fazla

Ayarlar