0

可能性のある回答の選択肢と正しい回答の選択肢を使用して、トリビア ゲームの一連の質問を初期化しようとしています。これが私のメインクラスです:

public class Lab82 {

/**
 * @param args the command line arguments
 */
public static void main(String[] args) {
    final int NUM_QUESTIONS = 10;
    Question[] questions = new Question[10];


}
}

そして、ここにトリビアの質問のクラスがあります:

 public class Question {
 //fields
 private String question;
 private String ans1;
 private String ans2;
 private String ans3;
 private String ans4;
 private int correctAns;

 /**
 * Constructor
 * @param question
 * @param ans1
 * @param ans2
 * @param ans3
 * @param ans4
 * @param correctAns 
 */
public Question(String question, String ans1, String ans2, String ans3, String ans4, int correctAns){
this.question = question;
this.ans1 = ans1;
this.ans2= ans2;
this.ans3 = ans3;
this.ans4 = ans4;
this.correctAns = correctAns;
}
}

これをメインメソッドに入力してみました:

questions[0] = new Question("How old are you?", "Zero", "One", "Two", "Three", 2);

しかし、このエラーメッセージが表示されました:

クラス Question のコンストラクタ Question は、特定の型には適用できません。必須: 引数が見つかりません: String,String,String,String,String,int 理由: 実引数リストと仮引数リストの長さが異なります

各雑学クイズの質問、回答の選択肢、および正解を Question コンストラクターに適切に渡すにはどうすればよいですか?

4

3 に答える 3

0

クラス Lab82 のメイン メソッドでタイプ Question の新しいオブジェクトを作成します。

Question questionOne = new Question(questionOne, ans1, ans2, ans3, ans4, correctAns);

上記のオブジェクトを配列の質問に渡します。

于 2013-11-15T02:32:01.123 に答える
0

以下は機能しますが、空の文字列だけでなく、実際のデータを追加したいのではないかと思います。データはどこから来ていますか?

for (int x = 0; x < questions.length; x++)
{
    questions[x] = new Question("", "", "", "", 1);
}

したがって、おそらく次のように各質問を個別に入力したいと思うでしょう。

questions [0] = new Question("What is SO?", "Stack Overflow", "Say Oi", "Sasuages OK",                    "so", 1);
questions [1] = new Question("....", "...", "...", "...", "...", 1);
于 2013-11-15T02:30:44.317 に答える
0

簡単な方法は次のとおりです。

   new Question("What's the time Mr Wolf?", "3 oclock", "4 oclock", "5 oclock", 
                "Dinner time!", 4);

しかし、それは良い解決策ではありません。なぜなら、質問と回答をコードに組み込むことには問題があるからです。

  • 質問を追加/変更するには、再コンパイルする必要があります。
  • メモリが多すぎます... 'すべての Q&A 文字列を常にメモリに格納する必要があるためです。
  • アーキテクチャ上の制限に遭遇します。メソッドのバイトコード制限など。

より良いアプローチは、必要に応じて (アプリケーション リソース、ファイル、データベース、外部サービスなどから) Q&A を読み込むことです。

于 2013-11-15T02:30:55.203 に答える