私が作っている小さなプログラムに問題があります。基本的に私は6つのクラスを持っています。 1つのメインクラス、メインクラスを「拡張」する4つのサブクラス、およびプログラムを実行するための別のクラス。プログラムを実行するためのクラスがこれまでにレイアウトされている:メソッドのコンパイラエラー
public class ClassToRunProgram {
public void main(String[] args){
Class1 a = new Class1(0, "class1"); //I've created 1 main class (Class5) that
Class2 b = new Class2(1, "class2"); //these 4 classes extend.
Class3 c = new Class3(2, "class3");
Class4 d = new Class4(3, "class4");
int randomNum = (int) (Math.random() *3);
Class5[] arrayForClasses = new Class5[]{a, b, c, d}; //since they're extending this
//class I want to make them into
//a single Array?
String numberQuestion = JOptionPane.showInputDialog(null,
"What question do you want to ask? \n
Enter a number: \n
1. First Question? \n
2. Second Question? \n
3. Third Question?");
int question = Integer.parseInt(numberQuestion); //not sure if this part is
//actually relevant at all??
//Think it might be since I want to
//use integers in my if statement below
if(question == 1){
JOptionPane.showMessageDialog(null, "Blah blah"+arrayForClasses.getReturnValue()+" blah");
}
.getReturnValue()メソッドは、クラス(1-5)のすべての範囲内です。これが実際に何をしなければならないかわからない。しかし、私が問題を抱えているのは、コンパイルすると(たとえ終了していなくても) "symbol:method .getReturnValue()location:variable arrayForClasses type Class5 []"というメッセージで "CAN NOT FIND SYMBOL" 。私はこれでどこが間違っているのだろうと思っていますか?
ご迷惑をおかけして申し訳ありません。
ありがとうございます!
'arrayForClasses'は配列です。 'getReturnValue()'メソッドはありません。 –
arrayForClassesはClass5 []であり、配列であり、配列にはgetReturnValue()メソッドがありません。あなたは本当に5つのクラスは必要ありません。あなたは1つのクラス "質問"が必要です。あなたはそのクラスのインスタンスを4つ(または他の量)作成する必要があります。 – esej
この 'arrayForClasses [0] .getReturnValue()'のような配列インデックスを使用して、 'getReturnValue()'メソッドを呼び出します。 – Lion