[英]Static fields in inner classes
如果我有這樣的課堂結構
public class Foo{
//declaring fields and methods
Foo(int k){
Bar.a = k;
}
public class Bar{
public final static int a;
}
}
而且,如果我創建了許多Foo實例,則Bar類中的靜態字段將如何起作用? 我的意思是,它是所有Foo對象的相同實例,還是每個實例都有不同的靜態字段?
我認為內部類不能具有靜態成員,因為它需要外部類的實例。
代碼不會編譯,編譯器會發出
COMPILATION ERROR :
-------------------------------------------------------------
... error: Illegal static declaration in inner class blah.Foo.Bar
1 error
您需要具有一個static
內部類才能編譯此代碼。
您的問題不正確。 只是問不存在的東西毫無意義。 在這種情況下,唯一的可能性是使內部類static
。 然后,對於外部類的每個實例,您都有一個內部類的靜態實例。 結果,此內部類的一個靜態變量。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.