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

  • Breno Rises

    Breno Rises

    7 Ocak 2014
  • njhaley

    njhaley

    24 NİSAN 2006
  • TokShogun

    TokShogun

    6 HAZİRAN 2009