お世話になります。
9月から少しずつjavaを勉強し始めた初心者です。
質問の仕方、現状の把握など見当違いの事も多いかと思いますが、御助言頂ければ幸いです。
現在、超初心者向けの4択クイズを作っています。
クイズを進行するメインのクラスと問題クラスを作り、問題クラスを呼び出すことでクイズが進む様なコードを書いています。
メインクラスをシンプルにするために各問題クラスを配列用いて管理出来ればと思ったのですが、
エラー: 不適合な型: Q1をQuizに変換できません:
question[0] = q1;
と出てしまい上手くいきません。
そもそもクラスを配列入れ呼び出すという発想が間違っているのでしょうか?
御助言頂けますと幸いです。
発生している問題・エラーメッセージ
エラーメッセージ
Quiz.java:23: エラー: 不適合な型: Q1をQuizに変換できません:
question[0] = q1;
^
Quiz.java:24: エラー: 不適合な型: Q2をQuizに変換できません:
question[1] = q2;
^
Quiz.java:25: エラー: 不適合な型: Q3をQuizに変換できません:
question[2] = q3;
^
Quiz.java:26: エラー: 不適合な型: Q4をQuizに変換できません:
question[3] = q4;
^
Quiz.java:27: エラー: 不適合な型: Q5をQuizに変換できません:
question[4] = q5;
^
エラー5個
該当のソースコード
java
1【メインクラス】 2import java.io.BufferedReader; 3import java.io.InputStreamReader; 4import java.util.Random; 5 6public class Quiz 7{ 8 public static void main(String[] args) 9 //クイズ進行用メインメソッド 10 { 11 12 Q1 q1 = new Q1(); 13 Q2 q2 = new Q2(); 14 Q3 q3 = new Q3(); 15 Q4 q4 = new Q4(); 16 Q5 q5 = new Q5(); 17 18 Quiz[] question; 19 question = new Quiz[5]; 20 21 question[0] = q1; 22 question[1] = q2; 23 question[2] = q3; 24 question[3] = q4; 25 question[4] = q5; 26 27 for(i = 0; i <= question.length; i++){ 28 question[i].inform(); 29 30 } 31 } 32} 33 34【問題クラス1/その他の問題クラスも出題内容を変えただけで同じものになります。】 35import java.io.BufferedReader; 36import java.io.InputStreamReader; 37import java.util.Random; 38 39public class Q1 40{ 41 //1問目 42 public void inform() 43 { 44 while(true){ 45 System.out.println("\n 第1問!!"); 46 System.out.println(" アメリカの首都はどこですか?"); 47 System.out.println(" 1:ニューヨーク"); 48 System.out.println(" 2:ワシントン"); 49 System.out.println(" 3:ロサンジェルス"); 50 System.out.println(" 答えを番号で入力し、エンターキーを押してください。→"); 51 52 InputStreamReader inputStreamReader = new InputStreamReader(System.in); 53 BufferedReader bufferedReader = new BufferedReader(inputStreamReader); 54 55 int answer = 0; 56 String message = " ハズレ(´・ω・`)もう一度考えてみてね!"; 57 58 try 59 { 60 String buf = bufferedReader.readLine(); 61 answer = Integer.parseInt(buf); 62 } 63 catch (Exception exception) 64 { 65 answer = 0; 66 message = " 答えを番号で入力し下さい(´;ω;`)"; 67 } 68 if(answer == 2) 69 { 70 message = " 正解(`・ω・´)b良く出来ました!"; 71 System.out.println(message); 72 break; 73 } 74 System.out.println(message); 75 } 76 } 77}
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/10/28 08:33