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

  • Andytokkallos

    Andytokkallo

    27 Kasım 2007
  • Bokeh

    Bokeh

    9 HAZİRAN 2014
  • The Onion

    The Onion

    14 Mart 2006