Varsayılan yapıcı
- Java kursu
- Orta seviye
- Ders 11/116
- 4 dk
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
// Lamp sınıfını tanımla
// iki yapıcı ekle
// main içinde ikisini de çağırÖrnek çözüm
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
class Lamp {
int brightness;
Lamp(int b) { brightness = b; }
____ { }
}
class Lamp {
int brightness;
Lamp(int b) { brightness = b; }
Lamp { }
}
Açıklama: Boş yapıcı da sınıf ismiyle tanımlanır.