class t{ public static void main(String[] args){ System.out.println(x); } }のようなプログラムをコンパイルすると出ますね.
「シンボル」というのは変数名,メソッド名,クラス名などの総称です.宣言していない 変数名,メソッド名,クラス名を参照しようとすると,このコンパイルエラーが出ます.
多くの場合は,宣言のし忘れ,タイプミス(大文字小文字の混同も含む)が原因なので,この エラーメッセージをみたら,まずはそれを疑ってみて下さい.
System.out.println(solve(new HighLowProblem(10000,-1)));のところを
System.out.println(solve(new MooProblem(10000)));としてコンパイルしたところ
”MooProblemはabstractではなく、Problem内のabstractメソッドget(int)をオーバーライドしません。”というエラーメッセージが出ましたが、どうすればよいのか分かりません。
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException:10000 at GameSolver.solve(GameSolver.java:34) at GameSolver.main(GameSolver.java:46)とエラーが出るんですが、どこを直せばいいんでしょうか。
Array - 配列の Index - 添え字が OutOfBounds - 範囲外という意味なので,確保したサイズを超える添え字(エラーメッセージを見ると10000)でアクセスしたことが原因である ことだけは分かります. MooProblemの実行によるものと思われますが,MooProblemのコンストラクタは
引数なし - 乱数で問題を生成 引数を指定 - index番目(0-5039)のMoo数を正解とするという意味なので,new MooProblem(10000)のような呼び出しをしたら,例外ArrayIndexOutOfBoundsExceptionが発生します.