簡體   English   中英

內部類中的靜態字段

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM