# Constructor

Adres: https://softwaredictionary.org/tr/terimler/constructor
Kategori: Programlamanın Temelleri
Son güncelleme: 2026-10-05
Türkçe karşılığı: yapıcı metot, kurucu metot
Okunuşu: kınstraktır

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ıf

```javascript
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.

## Kaynaklar

- [MDN: constructor](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes/constructor)
- [The Java Tutorials: Providing Constructors for Your Classes](https://docs.oracle.com/javase/tutorial/java/javaOO/constructors.html)

---

Software Dictionary: https://softwaredictionary.org/tr · https://softwaredictionary.org/tr/llms.txt
