SORU
3 Ocak 2010, Pazar


Kurucu Beyannamesi veya örnek değişkenleri oluşturmak gerekir?

Her iki yaklaşım için herhangi bir avantajı var mı?

Örnek 1:

class A {
    B b = new B();
}

Örnek 2:

class A {
    B b;

    A() {
         b = new B();
    }
}

CEVAP
3 Ocak 2010, Pazar


  • fark yok örnek değişken başlatma aslında derleyici tarafından(lar) kurucu konur
  • ilk varyant daha okunabilir olur
  • ilk varyant ile özel durum işleme alamazsınız
  • ayrıca da yapıcı koymak(ler) derleyici ile olan başlatma bloğu vardır:

    {
        a = new A();
    }
    

Sun's explanation and advice Kontrol edin

this tutorial:

Alan tanımlamalar, ancak, herhangi bir yöntemi bir parçası değildir, ifadeleri olarak idam edilemez bu yüzden. Bunun yerine, Java derleyici otomatik olarak örnek alan başlatma kodu oluşturur ve yapıcı koyar veya sınıf için kurucular. Başlatma kodu alan başlatıcı alanlar daha önce ilan edilen başlangıç değerleri kullanmak anlamına gelir kaynak kodunda göründüğü sırada bir kurucu, eklenir.

Ayrıca, isteyebilirsiniztembel başlatılamadısenin alan. Bir alan başlatılıyor pahalı bir işlem olduğu durumlarda, ihtiyaç duyulan en kısa sürede başlatmak olabilir:

ExpensiveObject o;

public ExpensiveObject getExpensiveObject() {
    if (o == null) {
        o = new ExpensiveObject();
    }
    return o;
}

Ve sonunda Bill ile belirttiği gibi), bağımlılık yönetimi iyiliği için, daha iyi olurönlemeksınıf içinde new operatör her yerde kullanma. Bunun yerine, Dependency Injection tercih - yani izin kullanarak bir başkası (başka bir sınıf/çerçeve) oluşturmak ve sınıf bağımlılıkları enjekte.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • InfinityWard

    InfinityWard

    19 EYLÜL 2006
  • mipd1980

    mipd1980

    25 EKİM 2006
  • Video-Tutorials.Net

    Video-Tutori

    15 Mart 2011