質問: "muku&" + "pomu"; int level =10005; } } ``` と打ち込むと 以下の様なエラーが出てきてしまいます、、、、 ``` part01.java:32: エラー: メソッド本体がないか、abstractとして宣言されています static void putJyosyou(); ^ エラー1個 C:\Users\雄太郎\javapro>javac part01.java part01.java:18: エラー: staticでない変数 levelをstaticコンテキストから参照することはできません if ( level<5 ){ ^ part01.java:21: エラー: staticでない変数 levelをstaticコンテキストから参照することはできません System.out.println( "こんにちはレベル" + level + "の" + name + "さん"); ^ part01.java:21: エラー: staticでない変数 nameをstaticコンテキストから参照することはできません System.out.println( "こんにちはレベル" + level + "の" + name + "さん"); ^ part01.java:22: エラー: staticでない変数 levelをstaticコンテキストから参照することはできません if( level > 80){ ^ part01.java:25: エラー: staticでない変数 levelをstaticコンテキストから参照することはできません else if(level>50){ ^ part01.java:27: エラー: staticでない変数 levelをstaticコンテキストから参照することはできません else if(level>40){ ^ part01.java:29: エラー: staticでない変数 levelをstaticコンテキストから参照することはできません else if(level>30){ ^ part01.java:33: エラー: メソッド本体がないか、abstractとして宣言されています static void putJyosyou(); ^ エラー8個 ``` Staticコンテキスト adstractとして宣言されている 以上の2つの意味が全く不明です。。 長々とすみません。。。
回答: `int level =10005;` は static フィールドではないため、static メソッドからは参照できません。 main は static メソッドのため怒られているわけです。 static int level にしてみてはどうですか? static のフィールドは扱いに難しいため、不用意に使うべきではありませんが、 mainメソッド一発ものっぽいので、別に問題ないでしょう。 それか、level は mainメソッドの起動引数としてもらってみてはどうでしょう。 `static void putJyosyou();` このメソッドには 実装があるにも関わらず、セミコロンと終了されていますね。 セミコロンを削除しましょう。