Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。
Q&A
2回答
10496閲覧
総合スコア122
0グッド
2クリップ
投稿2014/07/01 06:46
0
2
javaの内部クラスについて質問なのですが、内部クラスの中でstatic変数を宣言すると、 **「フィールド x は static として宣言できません。static フィールドは、static またはトップ・レベル型においてのみ宣言できます」**というコンパイルエラーになってしまいます。
内部クラスの中ではstatic変数を宣言できないのでしょうか?
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
質問へのコメント
回答2件
クラスもstaticにすれば変数も宣言できます
投稿2014/07/17 08:43
総合スコア410
内部クラス(Inner class)は外側のクラス(Enclosing class)のインスタンス・メンバー同様に**「インスタンス」にのみ関連付けられる**ため、インスタンスを生成することなく使用できるstaticメンバーを宣言することはできません。 ちなみに仕様上は「static内部クラス」というものは存在しません。あるクラスの中に宣言されたクラスは「入れ子クラス(Nested class)」と呼ばれますが、非staticなものだけが「内部クラス(Inner class)」であり、static宣言された入れ子クラスは内部クラスではなく「Static nested class」と呼ばれます。この辺りの話は、Java TutorialのNested classesにも詳しく書かれているので読んでみてください。 したがって、内部クラスではstaticフィールドは宣言できませんが、staticキーワードを付けた入れ子クラスにすることでstaticフィールドを宣言することができます。
投稿2017/03/25 07:57
総合スコア417
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
まだベストアンサーが選ばれていません
アカウントをお持ちの方はログイン
15分調べてもわからないことはteratailで質問しよう!
ただいまの回答率85.29%
質問をまとめることで思考を整理して素早く解決
テンプレート機能で簡単に質問をまとめる
内部クラスにはstatic変数を宣言できないのでしょうか?
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。