Java varsayılan kurucu
Tam olarak bir varsayılan kurucu — aşağıdakilerden birini varsayılan bir kurucusu olan ve diğer kurucu ayıran ne olduğunu söyleyebilir misiniz?
public Module() {
this.name = "";
this.credits = 0;
this.hours = 0;
}
public Module(String name, int credits, int hours) {
this.name = name;
this.credits = credits;
this.hours = hours;
}
CEVAP
İkisi de. Bunu tanımlamak, varsayılan değil.
Varsayılan oluşturucu no-argüman yapıcı başka bir yapıcı tanımlamak sürece otomatik olarak oluşturulur. Varsayılan değerlerine herhangi bir ilklenmemiş alanları initialises. Eğer örneğin, bu gibi tipleri String
, int
int
olduğunu varsayarsak görünecektir:
public Module()
{
super();
this.name = null;
this.credits = 0;
this.hours = 0;
}
Bu tam olarak aynı
public Module()
{}
Ve hiç kurucular sahip olarak birebir aynı. En az bir kurucu tanımlamak, ancak, varsayılan yapıcı oluşturulmaz.
Referans: Java Language Specification
Açıklama
Teknik olarak varsayılan-initialises alanları yapıcı (varsayılan veya başka) değildir. Ancak, bir çözüm) bu gidiyorum soru varsayılanları yanlış ve b) var onları dahil ya da değil, yapıcı, tam olarak aynı etkiye sahiptir.
Java varsayılan kurucu...
'kamu, varsayılan olarak korumalı...
Nasıl Java başka bir kurucu arayayım m...
Java desteği varsayılan parametre değe...
Varsayılan ayar, karakter kodlaması Ja...