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
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.
Neden Java statik olarak bir sınıf bil...
Neden't statik yöntemler Java'da ...
Neden Java temel yöntem statik mi?...
Neden't ben bir Java arayüzü stat...
Neden't statik Java yöntemleri ge...