Java’da constructor, yani yapıcı metot, bir sınıftan nesne oluşturulurken otomatik olarak çalışan özel bir metottur. Constructor’lar sayesinde nesneler başlatılır (initialize edilir), yani özelliklerine ilk değerler atanır.
Bu yazıda constructor nedir, nasıl yazılır, hangi kurallara dikkat edilmelidir gibi tüm sorulara detaylı ve anlaşılır örneklerle yanıt veriyoruz.
🔹 Constructor (Yapıcı Metot) Nedir?
Constructor, bir sınıftan nesne oluşturulduğunda otomatik olarak çağrılan özel bir metottur. Constructor’lar sayesinde nesneler ilk haline getirilir.
✅ Constructor’ın Özellikleri
- Sınıf ismiyle aynı adı taşır.
- Geri dönüş tipi (void, int, vs.) yazılmaz.
new
anahtar kelimesiyle çağrılır (nesne oluşturulurken).- İster parametreli, ister parametresiz olabilir.
🧱 Parametresiz Constructor Örneği
public class Araba {
String marka;
int hiz;
// Constructor (yapıcı metot)
public Araba() {
marka = "Bilinmiyor";
hiz = 0;
System.out.println("Yeni araba oluşturuldu.");
}
}
Kullanımı:
public class Main {
public static void main(String[] args) {
Araba a1 = new Araba();
System.out.println("Marka: " + a1.marka); // Bilinmiyor
}
}
Parametreli Constructor
public class Araba {
String marka;
int hiz;
public Araba(String m, int h) {
marka = m;
hiz = h;
}
public void bilgileriYazdir() {
System.out.println("Marka: " + marka + ", Hız: " + hiz);
}
}
Kullanımı:
public class Main {
public static void main(String[] args) {
Araba a1 = new Araba("Toyota", 120);
a1.bilgileriYazdir(); // Marka: Toyota, Hız: 120
}
}
🛠️ this
Anahtar Kelimesi ile Kullanım
Sınıfın içindeki değişken ile parametrenin ismi aynıysa, this
anahtar kelimesi kullanılır.
public class Ogrenci {
String ad;
public Ogrenci(String ad) {
this.ad = ad; // sınıf değişkeni ile parametreyi ayırır
}
}
🔄 Constructor Overloading (Aşırı Yükleme)
Bir sınıfta birden fazla constructor tanımlanabilir. Farklı parametre listeleri ile çağrılabilir.
public class Kitap {
String isim;
int sayfa;
// 1. Constructor
public Kitap() {
isim = "Bilinmeyen";
sayfa = 0;
}
// 2. Constructor (Overloaded)
public Kitap(String isim, int sayfa) {
this.isim = isim;
this.sayfa = sayfa;
}
}
Kullanımı:
Kitap k1 = new Kitap();
Kitap k2 = new Kitap("Java 101", 300);
⚙️ Default Constructor Nedir?
Eğer hiç constructor yazmazsanız, Java otomatik olarak default (varsayılan) bir parametresiz constructor sağlar.
public class Deneme {
// Java bunu otomatik ekler:
// public Deneme() {}
}
Ancak bir tane bile constructor yazarsanız, Java artık otomatik constructor eklemez. Bu yüzden kendiniz manuel olarak yazmalısınız.
❗ Sık Yapılan Hatalar
Hata | Açıklama |
---|---|
Constructor’a geri dönüş tipi yazmak | Yanlış bir kullanım, constructor geri dönüş tipi almaz |
this kullanımını atlamak | Parametre ile sınıf değişkeni çakıştığında yanlış atamalar yapılabilir |
Constructor yerine metot yazmak | Sınıf ismiyle aynı olmayan ama geri dönüş tipi olmayan metotlar constructor değildir |