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

  • Avast

    Avast

    27 NİSAN 2006
  • Droid Life

    Droid Life

    17 Kasım 2009
  • JorteexHD

    JorteexHD

    20 NİSAN 2012