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

  • Microsoft Help & Training Videos

    Microsoft He

    31 Mart 2009
  • Schmittastic Jr.

    Schmittastic

    19 Mart 2013
  • WHZGUD2

    WHZGUD2

    21 EYLÜL 2011