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.
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
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); // 0Sı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
- SınıfProgramlamanın Temelleri, s. 49Sınıf, nesne yönelimli programlamada bir grup nesnenin paylaştığı veri ve davranışı tanımlayan, nesnelerin örnek olarak ondan oluşturulduğu bir plandır.
- NesneProgramlamanın Temelleri, s. 39Nesne, ilgili veriyi ve davranışı bir arada tutan yapıdır: değerleri özellik denen adlandırılmış alanlarda, onları işleyen fonksiyonları metot olarak taşır.
- MetotProgramlamanın Temelleri, s. 38Metot, bir nesneye ya da sınıfa ait olup onun üzerinden çağrılan fonksiyondur; user.rename("Ada") örneğindeki gibi nesnenin verisini okuyup değiştirebilir.
- OOPProgramlamanın Temelleri, s. 41OOP, yani nesne yönelimli programlama, kodu ilişkili verileri onlar üzerinde işlem yapan fonksiyonlarla birleştiren nesneler etrafında düzenleme yöntemidir.
- KalıtımProgramlamanın Temelleri, s. 31Kalıtım, yeni bir sınıfın mevcut bir sınıfın alanlarını ve metotlarını yeniden kullanmasını, genişletmesini ve geçersiz kılmasını sağlayan OOP özelliğidir.
- ParametreProgramlamanın Temelleri, s. 45Parametre, bir fonksiyonun tanımındaki adlandırılmış bir girdidir; argüman ise fonksiyon çağrıldığında o yere verilen gerçek değerdir.
- KapsüllemeProgramlamanın Temelleri, s. 33Kapsülleme, verileri onları kullanan metotlarla paketleyip iç ayrıntıları gizlemektir; dışarıdaki kod yalnızca herkese açık bir arayüz üzerinden çalışır.
Kaynaklar
Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin