Java'da Constructor (Yapıcı) Nedir? Özellikleri ve Örnekleri
Herkese merhabalar 👋 Bu yazımızda Java programlama dilinde en çok sorulan konulardan biri olan Constructor (Yapıcı) nedir, nasıl tanımlanır ve nasıl kullanılır sorularına detaylı yanıt vereceğiz.
Java'da Constructor (Yapıcı) Nedir?
Java'da constructor, bir sınıftan nesne (obje) oluşturulurken çağrılan özel bir metottur. Her yeni nesne oluşturduğunuzda otomatik olarak bir yapıcı çalışır. Eğer siz bir constructor yazmazsanız, Java derleyicisi sizin için varsayılan bir yapıcı (default constructor) ekler.
Basit Constructor Örneği
class Kitap {
protected Kitap() {
// Constructor bloğu
}
protected void romanOku() {
// Normal bir metot
}
}
Constructor ile Metot Arasındaki Farklar
- Constructor'lar asla dönüş tipi içermez (void bile değil!).
- Sınıfla aynı isme sahip olmak zorundadırlar.
static,finalveyaabstractolamazlar.- Tüm erişim belirteçleri ile tanımlanabilirler (public, private, vs.).
Legal ve Illegal Constructor Örnekleri
class Kitap2 {
// Legal constructors
Kitap2() { }
private Kitap2(byte b) { }
Kitap2(int x) { }
Kitap2(int x, int... y) { }
// Illegal constructors
void Kitap2() { } // Metot, constructor değil
Kitap() { } // Hatalı tanım
Kitap2(short s); // Soyut metot hatası
static Kitap2(float f) { } // static olamaz
final Kitap2(long x) { } // final olamaz
abstract Kitap2(char c) { } // abstract olamaz
Kitap2(int... x, int t) { } // Var-args kuralına aykırı
}
Java Default Constructor (Varsayılan Yapıcı) Özellikleri
- Parametresizdir.
- Sınıfla aynı erişim belirtecine sahiptir.
- Arka planda
super()çağrısını içerir.
Parametreli Constructor ve super() Kullanımı
Üst sınıfta parametreli constructor tanımlanmışsa, alt sınıf constructor'ında super() ile uygun parametre geçilmelidir. Aksi halde derleyici hata verir.
class Arac {
Arac(String ad) {
// Parametreli constructor
}
}
class Otomobil extends Arac {
Otomobil() {
super(); // HATA: parametre eksik
}
}
Yukarıdaki örnekte super() çağrısı hatalıdır çünkü Arac sınıfı sadece parametreli constructor içeriyor. Dolayısıyla alt sınıfta da bu parametre ile çağırılmalıdır.
Java Constructor Kullanımında Dikkat Edilmesi Gerekenler
- Constructor'lar sadece nesne oluşturulurken çağrılır.
- İsteğe göre overload (aşırı yükleme) yapılabilir.
this()ile aynı sınıf içindeki başka bir constructor çağrılabilir.super()ile üst sınıfın constructor'ı çağrılır (ilk satırda olmalı!).
Sonuç
Java'da constructor, nesne tabanlı programlamanın temel taşlarından biridir. Doğru kullanıldığında, kodun okunabilirliğini artırır, hataları azaltır ve nesne yaratım sürecini kontrol etmenizi sağlar.
Bu Yazıda Öğrendiklerimiz:
- Constructor nedir ve neden kullanılır?
- Default ve parametreli constructor farkı
- Java'da constructor tanımı ve örnekleri
- super() ve this() kullanımı
- Constructor ile metodun farkları
🔗 Daha Fazlası İçin:
Takipte kalın, kodla kalın! 👨💻