Main.java
public class Main {
public static void main(String[] args) {
int quizNum = 5;
CalcQuiz[] quiz = new CalcQuiz[quizNum];
for(int i=0; i<quizNum; i++){
quiz[i]=new BinkanQuiz();
}
for(int i=0; i<quizNum; i++){
System.out.println("문제"+i+":"+quiz[i].getQuestion()); //상속받은 getQuestion()
}
System.out.println("-------------------------------------");
for(int i=0; i<quizNum; i++){
System.out.println("문제"+i+":"+quiz[i].getAnswer()); //상속받은 getAnswer()
}
}
}
CalcQuiz.java
import java.util.Random;
class CalcQuiz { //계산 문제를 1개 만드는 클래스
String question; // 문제를 저장할 필드
String answer; // 답을 저장할 필드
CalcQuiz() {
createQuestion();
}
void createQuestion(){
Random rnd = new Random();
int a = rnd.nextInt(100);
int b = rnd.nextInt(100);
this.question = a + "x" + b + "=?";
this.answer = Integer.toString(a * b);
}
String getQuestion() {
return this.question; //문제를 알려주는 메소드
}
String getAnswer() {
return this.answer; //답을 알려주는 메소드
}
}
BinkanQuiz.java
import java.util.Random;
class BinkanQuiz extends CalcQuiz {
BinkanQuiz(){
createQuestion();
}
void createQuestion() {
Random rnd = new Random();
int dan = rnd.nextInt(10); // 몇단인가
int qID = rnd.nextInt(10); // 문제
this.question =""; // CalcQuiz()을 초기화 해주지않으면 값이 Main에서 같이 뒤섞여버림
this.answer ="";
for(int i=0; i<10; i++) {
if(i == qID) {
this.question += "[O]";
} else {
this.question += "["+(dan*i)+"]";
}
}
this.question += ": O에 들어갈 수는 몇일까요?";
this.answer += "정답:" + (dan * qID);
}
}
문제0:[0][9][18][27][36][O][54][63][72][81]: O에 들어갈 수는 몇일까요?
문제1:[0][8][16][O][32][40][48][56][64][72]: O에 들어갈 수는 몇일까요?
문제2:[0][O][0][0][0][0][0][0][0][0]: O에 들어갈 수는 몇일까요?
문제3:[0][3][6][9][O][15][18][21][24][27]: O에 들어갈 수는 몇일까요?
문제4:[0][O][0][0][0][0][0][0][0][0]: O에 들어갈 수는 몇일까요?
-------------------------------------
문제0:정답:45
문제1:정답:24
문제2:정답:0
문제3:정답:12
'Java 1학년' 카테고리의 다른 글
[캡슐화] 필드 제한 / 메소드 구분 하기 (0) | 2022.02.21 |
---|---|
[Java 1학년] 객체 지향 / 폴리모피즘 (0) | 2021.10.05 |
[Java 1학년] 객체 지향 / 캡슐화 (0) | 2021.10.05 |
[Java 1학년] 객체 지향 (0) | 2021.10.05 |