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

  • Anthony Cumia

    Anthony Cumi

    5 EYLÜL 2006
  • FND Films

    FND Films

    2 Mayıs 2006
  • FRED

    FRED

    1 EKİM 2005