Java
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.
Örnek çözümü göster
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);
}
}
Kendini test et
-
Sınıfa parametreli yapıcı yazınca ne olur?
- Java varsayılan yapıcı eklemez
- Java yine varsayılan yapıcı ekler
- Sınıf derlenmez
- Tüm yapıcılar silinir
Cevabı göster
Java varsayılan yapıcı eklemez — Java varsayılan yapıcı eklemez — artık parametresiz çağrı derlenmez.
-
Varsayılan yapıcı durumlarını eşle
- 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ı
-
Boş yapıcıyı tamamla
class Lamp {
int brightness;
Lamp(int b) { brightness = b; }
____ { }
}
Cevabı göster
class Lamp {
int brightness;
Lamp(int b) { brightness = b; }
Lamp { }
}
Sıradaki ders: Özet - Yapıcı