5

そのようなクラス構造があれば

public class Foo{
    //declaring fields and methods


    Foo(int k){
        Bar.a = k;
    }
    public class Bar{
        public final static int a;
    }
}

また、Foo のインスタンスを多数作成した場合、クラス Bar の static フィールドはどのように機能しますか? つまり、すべての Foo オブジェクトで同じインスタンスですか、それともインスタンスごとに異なる静的フィールドがありますか?

4

3 に答える 3

4

外部クラスのインスタンスが必要なため、内部クラスは静的メンバーを持つことはできないと思います。

于 2013-03-16T11:01:15.323 に答える
1

コードはコンパイルされず、コンパイラは出力します

COMPILATION ERROR : 
-------------------------------------------------------------
... error: Illegal static declaration in inner class blah.Foo.Bar
1 error

staticこのコードをコンパイルするには、内部クラスが必要です。

于 2013-03-16T11:04:37.837 に答える
0

あなたの質問は正しくありません。存在しないものについて尋ねても意味がありません。その状況での唯一の可能性は、内部クラスを作成することstaticです。次に、外部クラスのインスタンスごとに、内部クラスの静的インスタンスが 1 つあります。結果として、この内部クラスの静的変数が 1 つになります。

于 2013-03-16T11:03:02.373 に答える