SORU
23 Aralık 2009, ÇARŞAMBA


Neden Java iç sınıfları statik alanları yasaklıyor mu?

class OuterClass {
 class InnerClass {
  static int i = 100; // compile error
  static void f() { } // compile error
 }
} 

Olası metot gibidir statik alan erişim olmasa da.İnnerClass.eğer statik olması gereken bir şey kaydetmek istiyorsanız, örneğin İnnerClass nesnelerin sayısı, bu alan statik yapmak yararlı olacaktır. Bu yüzdennedenJava iç sınıflar yöntemleri/statik alanları yasaklıyor mu?

EDİT: yapmayı biliyorum derleyici mutlu statik iç içe geçmiş bir sınıf (veya statik iç sınıf), ama benim bilmek istediğim, neden java yasaklar statik alanları/yöntemleri içinde iç sınıflar (ya da sıradan iç sınıf) her iki dili tasarım ve uygulama yönlerini, eğer birisi daha fazla bilgisi var.

Teşekkürler.

CEVAP
23 Aralık 2009, ÇARŞAMBA


3* *bir örneği ilgili bir şey olduğu için static üyeler (OuterClass). Eğer static InnerClass örnekten ayırmak bildirirseniz, kod derleme.

class OuterClass {
    static class InnerClass {
        static int i = 100; // no compile error
        static void f() { } // no compile error
    }
}

BTW: hala InnerClass örneklerini oluşturmak mümkün olacak. Bu bağlamda static OuterClass kuşatan bir örneği olmadan gerçekleşmesini sağlar.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • case LianLi

    case LianLi

    28 Mayıs 2010
  • Joshua Kywn

    Joshua Kywn

    17 Mayıs 2010
  • Matthew Morrill

    Matthew Morr

    15 EKİM 2011