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

  • Carlos Delgado

    Carlos Delga

    21 HAZİRAN 2011
  • Myron and Nejusha dance

    Myron and Ne

    2 AĞUSTOS 2012
  • pissengehen

    pissengehen

    26 EYLÜL 2006