Java Constructor Nedir? Yapıcı Metot Kuralları ve Örnekler

Bu yazıda Java constructor kavramını detaylı şekilde inceleyeceğiz. Yapıcı metot nedir, nasıl tanımlanır, metotlardan farkı nedir, super() ve this() nasıl kullanılır gibi en çok sorulan sorulara örneklerle yanıt vereceğiz.

Kısa özet: Java’da constructor, bir sınıftan nesne oluşturulurken otomatik çalışan özel yapıdır. Dönüş tipi yoktur, sınıfla aynı adı taşır ve nesne oluşturma sürecini kontrol eder.

Java Constructor Nedir?

Java’da constructor, bir sınıftan nesne oluşturulurken çalışan özel bir yapıdır. Her yeni nesne üretildiğinde constructor otomatik olarak çağrılır. Eğer siz constructor tanımlamazsanız, Java derleyicisi sizin için varsayılan constructor (default constructor) ekler.

Basit Constructor Örneği

class Kitap {
    protected Kitap() {
        // Constructor bloğu
    }

    protected void romanOku() {
        // Normal metot
    }
}

Burada Kitap() bir constructor’dır. Çünkü sınıf adıyla aynıdır ve herhangi bir dönüş tipi içermez.

Constructor ile Metot Arasındaki Farklar

  • Constructor’ların dönüş tipi olmaz, void bile yazılmaz
  • Sınıf adıyla aynı isme sahip olmak zorundadır
  • static, final veya abstract olamaz
  • public, private, protected gibi erişim belirteçleri ile tanımlanabilir
  • Sadece nesne oluşturulurken çağrılır
Önemli: Sınıf adıyla aynı olsa bile dönüş tipi varsa bu artık constructor değil, normal metottur.

Legal ve Illegal Constructor Örnekleri

class Kitap2 {
    // Geçerli constructor'lar
    Kitap2() { }
    private Kitap2(byte b) { }
    Kitap2(int x) { }
    Kitap2(int x, int... y) { }

    // Geçersiz örnekler
    void Kitap2() { } // Metot, constructor değil
    Kitap() { } // Hatalı isim
    Kitap2(short s); // Soyut metot gibi yazılamaz
    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 sonda olmalı
}

Default Constructor Nedir?

Eğer sınıfta hiç constructor tanımlanmazsa, Java derleyicisi otomatik olarak bir default constructor ekler.

  • Parametresizdir
  • Sınıfla aynı erişim belirtecine sahiptir
  • Arka planda super() çağrısı içerir

Ancak sınıfta en az bir constructor tanımlarsanız, Java artık otomatik default constructor eklemez.

Parametreli Constructor Nedir?

Parametreli constructor, nesne oluşturulurken başlangıç değerlerinin dışarıdan verilmesini sağlar. Bu yapı, nesnenin daha kontrollü ve anlamlı şekilde oluşturulmasına yardımcı olur.

class Ogrenci {
    String ad;

    Ogrenci(String ad) {
        this.ad = ad;
    }
}

Bu örnekte nesne oluşturulurken öğrencinin adı doğrudan constructor üzerinden verilir.

super() Kullanımı

Bir alt sınıf constructor’ı içinde, üst sınıfın constructor’ını çağırmak için super() kullanılır. Bu çağrı constructor içinde ilk satırda olmalıdır.

class Arac {
    Arac(String ad) {
        // Parametreli constructor
    }
}

class Otomobil extends Arac {
    Otomobil() {
        super(); // HATA
    }
}

Burada hata oluşur çünkü Arac sınıfında parametresiz constructor yoktur. Bu yüzden alt sınıf uygun parametre ile çağrı yapmak zorundadır.

Doğru Kullanım

class Arac {
    Arac(String ad) {
        System.out.println(ad);
    }
}

class Otomobil extends Arac {
    Otomobil() {
        super("Otomobil");
    }
}

this() Kullanımı

Aynı sınıf içindeki başka bir constructor’ı çağırmak için this() kullanılır. Bu da constructor içinde ilk satırda yer almalıdır.

class Kitap {
    String ad;
    int sayfa;

    Kitap() {
        this("Bilinmiyor", 0);
    }

    Kitap(String ad, int sayfa) {
        this.ad = ad;
        this.sayfa = sayfa;
    }
}

Böylece constructor tekrarını azaltabilir ve daha temiz kod yazabilirsiniz.

Constructor Overloading

Java’da constructor’lar da overload edilebilir. Yani aynı sınıfta farklı parametre listelerine sahip birden fazla constructor tanımlayabilirsiniz.

class Kullanici {
    Kullanici() { }

    Kullanici(String ad) { }

    Kullanici(String ad, int yas) { }
}

Bu yapı farklı başlangıç senaryoları için esneklik sağlar.

Constructor Kullanırken Dikkat Edilmesi Gerekenler

  • Constructor adı sınıf adı ile birebir aynı olmalıdır
  • Dönüş tipi olmamalıdır
  • super() ve this() ilk satırda olmalıdır
  • Constructor’lar static, final veya abstract olamaz
  • Bir sınıfta constructor tanımlarsanız otomatik default constructor gelmez

Sık Sorulan Sorular

Java constructor nedir?

Constructor, bir sınıftan nesne oluşturulurken otomatik çalışan özel yapıdır.

Constructor ile metot arasındaki fark nedir?

Constructor dönüş tipi içermez ve nesne oluşturulurken çağrılır. Metot ise normal davranış tanımlar.

Default constructor nedir?

Sınıfta constructor yoksa Java tarafından otomatik eklenen parametresiz constructor’dır.

super() ne işe yarar?

Alt sınıftan üst sınıf constructor’ını çağırmak için kullanılır.

this() ne işe yarar?

Aynı sınıf içindeki başka bir constructor’ı çağırmak için kullanılır.

Sonuç

Java constructor konusu, nesne yönelimli programlamanın temel taşlarından biridir. Constructor mantığını doğru anlamak; nesne oluşturma sürecini kontrol etmeyi, daha temiz kod yazmayı ve sınıf tasarımını daha güçlü hale getirmeyi sağlar.

Özellikle default constructor, parametreli constructor, super() ve this() kullanımı Java öğrenen herkesin sağlam oturtması gereken konular arasındadır.

Etiketler: java constructor, java yapıcı metot, default constructor, super this java, java oop

Son Güncelleme: 2026

Latest Software Developers - Yazılım Blog Yazarı Profil Resmi

Yazar

LatestSoftwareDevelopers

Blog where the most up-to-date software is followed. (En güncel yazılımların takip edildiği blog sitesi)

Java ile ilgili yorumlar

Yorum Paylaş

EMail Zorunlu alanlar * *