SORU
6 ŞUBAT 2011, Pazar


Varsayılan alan başlatma satır içi oluşturucu

Bir varsayılan Kurucu ve sadece doğrudan bir nesnenin alanı başlatılıyor arasındaki fark nedir?

Sebep diğeri üzerinde aşağıdaki örneklerden birini tercih etmek.

Örnek 1

public class Foo
{
    private int x = 5;
    private String[] y = new String[10];
}

Örnek 2

public class Foo
{
    private int x;
    private String[] y;

    public Foo()
    {
        x = 5;
        y = new String[10];
    }
}

CEVAP
6 ŞUBAT 2011, Pazar


İnitialisers yapıcı kurumlar önünde idam edilir. Eğer her iki initialisers ve kurucular, kurucu kodu yürütür ve ikinci başlatıldığını değeri geçersiz kılar etkileri vardır

İnitialisers iyi zaman sana her zaman ihtiyacım var aynı başlangıç değeri (olduğu gibi; örneğin, bir dizi belirli boyut ya da belirli tamsayı değeri), ama iş senin lehinde veya aleyhinde:

Eğer değişkenler farklı (farklı değerler ile yani) yeniden birçok kurucular varsa, o zaman initialisers değişiklikleri geçersiz ve gereksiz olacaktır, çünkü işe yaramaz.

Eğer aynı değer ile yeniden birçok kurucular varsa öte yandan, o zaman tek bir yerde tutarak başlatma kodu (kodunuzu biraz daha rahat olun) satır kaydedebilirsiniz.

Michael dediği gibi, tadı da ilgili bir konu var - tek bir yerde kod tutmak isteyebilirsiniz. Eğer birçok kurucular varsa bu kodu herhangi bir durumda tek bir yerde olmasa da, bu yüzden initialisers destek olurdum.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • ethr95awd

    ethr95awd

    8 Kasım 2006
  • FullMag

    FullMag

    15 ŞUBAT 2007
  • Tahir Jahi

    Tahir Jahi

    6 Mart 2006