CodeBlanks Logo Icon CodeBlanks

Varsayılan yapıcı

Derleyicinin eklediği varsayılan yapıcıyı öğrenirsin.

Varsayılan yapıcı

Bir sınıfta hiç yapıcı tanımlanmadıysa Java otomatik olarak varsayılan yapıcı ekler. Bu yapıcı parametresizdir ve boş gövdelidir. Ancak sınıfa en az bir yapıcı yazarsan Java artık varsayılan yapıcı eklemez.

Örnek: class Light { } sınıfında yapıcı yoktur. new Light() yine çalışır; Java boş bir Light() yapıcısı eklemiştir. Ama class Light { Light(int b) { } } yazarsan new Light() artık derlenmez; çünkü sen bir yapıcı tanımladın ve Java varsayılanı eklemedi. Parametresiz yapıcı gerekirse elle yazmalısın.

Ne zaman elle yazmalı?

Sınıfında herhangi bir yapıcı varsa ve parametresiz çağrı da yapacaksan, boş yapıcıyı elle yazmalısın. Bu, new SinifAdi() çağrısının çalışmasını sağlar. Boş yapıcı gövdesi { } olabilir.

Örnek: class Lamp { int brightness; Lamp(int b) { brightness = b; } Lamp() { } }. Burada iki yapıcı vardır. İkincisi boş gövdelidir; new Lamp() çağrısını mümkün kılar. Bu yöntem, hem parametreli hem parametresiz örnekleme yapılabilmesini sağlar; esneklik kazandırır.

Uygulama Lamp sınıfına iki yapıcı ekle

Lamp adında bir sınıf tanımla. İçine int brightness alanını ekle. İki yapıcı yaz: birincisi Lamp(int b), brightness = b; ata; ikincisi Lamp(), gövdesi boş olsun. main içinde her iki yapıcıyı da çağır, brightness alanlarını ayrı satırlarda yazdır.

Başlangıç kodu

Main.java
// Lamp sınıfını tanımla
// iki yapıcı ekle
// main içinde ikisini de çağır

Örnek çözüm

Main.java
class Lamp {
    int brightness;
    Lamp(int b) {
        brightness = b;
    }
    Lamp() {
    }
    public static void main(String[] args) {
        Lamp a = new Lamp();
        Lamp b = new Lamp(80);
        System.out.println(a.brightness);
        System.out.println(b.brightness);
    }
}

Beklenen çıktı

0
80

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Sınıfa parametreli yapıcı yazınca ne olur?

  • Java varsayılan yapıcı eklemez Doğru cevap
  • Java yine varsayılan yapıcı ekler
  • Sınıf derlenmez
  • Tüm yapıcılar silinir

Açıklama: Java varsayılan yapıcı eklemez — artık parametresiz çağrı derlenmez.

2 Varsayılan yapıcı durumlarını eşle

Kavram Anlamı
Yapıcı yok Java boş yapıcı ekler
Yapıcı var Java eklemez
Elle boş yapıcı Parametresiz çağrıyı sağlar
new Light() Varsayılan çağrı

3 Boş yapıcıyı tamamla

Soru
class Lamp {
    int brightness;
    Lamp(int b) { brightness = b; }
    ____ { }
}
Cevap
class Lamp {
    int brightness;
    Lamp(int b) { brightness = b; }
    Lamp { }
}

Açıklama: Boş yapıcı da sınıf ismiyle tanımlanır.

Orta seviye bölümündeki tüm dersler