回答編集履歴

1

補足追加

2017/03/26 06:47

投稿

amadablam
amadablam

スコア402

test CHANGED
@@ -1,3 +1,5 @@
1
1
  内部クラス(Inner class)は外側のクラス(Enclosing class)のインスタンス・メンバー同様に**「インスタンス」にのみ関連付けられる**ため、インスタンスを生成することなく使用できるstaticメンバーを宣言することはできません。
2
2
 
3
3
  ちなみに仕様上は「static内部クラス」というものは存在しません。あるクラスの中に宣言されたクラスは「入れ子クラス(Nested class)」と呼ばれますが、非staticなものだけが「内部クラス(Inner class)」であり、static宣言された入れ子クラスは内部クラスではなく「Static nested class」と呼ばれます。この辺りの話は、[Java TutorialのNested classes](http://docs.oracle.com/javase/tutorial/java/javaOO/nested.html)にも詳しく書かれているので読んでみてください。
4
+
5
+ したがって、内部クラスではstaticフィールドは宣言できませんが、staticキーワードを付けた入れ子クラスにすることでstaticフィールドを宣言することができます。