SORU
20 Aralık 2010, PAZARTESİ


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
20 Aralık 2010, PAZARTESİ


İ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.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • dirkgently1

    dirkgently1

    13 NİSAN 2006
  • Ryan Billy

    Ryan Billy

    30 EKİM 2006
  • taliajoy18

    taliajoy18

    12 Temmuz 2011