두서없는 공부 노트/JAVA
(Java) Day11 - 클래스복습 ----상속과 인터페이스 응용
kkm8257
2020. 8. 20. 14:12
반응형
앞 글에 대한 내용 그대로, 상속과 인터페이스로 재구현
package ClassReview_2_Inheritance;
public class number_1 {
//1. 2개의 숫자와 1개의 문자열을 저장할 수 있는 클래스 만들기
// 뒤에 2 3 4 번에 사용할 클래스 A
int num_1;
int num_2;
String str;
}
package ClassReview_2_Inheritance;
import java.util.ArrayList;
public class number_2 extends number_1 {
//2. 위의 1번의 클래스(이하 클래스 A)를 저장할 수 있는 어레이 리스트를 만들기
ArrayList<number_1> array = new ArrayList<>();
}
package ClassReview_2_Inheritance;
import java.util.Random;
public class number_3 extends number_2 {
// 3. A 클래스에 2개의 랜덤 숫자와 랜덤 사칙 연산을 가진 객체를 5개를 만들어서 어레이 리스트에 저장하기
number_3 nm3_result;
public String randomSign() {
Random rd = new Random();
int temp = rd.nextInt(4);
if (temp == 0) {
return "+";
} else if (temp == 1) {
return "-";
} else if (temp == 2) {
return "*";
} else if (temp == 3) {
return "/";
} else {
return "잘못된 입력";
}
}
public number_3 insert(number_3 nm3) {
Random rd = new Random();
for (int i = 0; i < 5; i++) {
nm3.array.add(new number_2());
nm3.array.get(i).num_1 = rd.nextInt(10) + 1;
nm3.array.get(i).num_2 = rd.nextInt(10) + 1;
nm3.array.get(i).str = nm3.randomSign();
// 0~9까지의 숫자 랜덤으로 받아서 2개 입력 후 , 사칙연산 랜덤으로 설정
}
this.nm3_result=nm3;
return nm3;
}
public void processPrint() {
for (int i = 0; i < 5; i++) {// 출력
System.out.print(nm3_result.array.get(i).num_1 + " " + nm3_result.array.get(i).num_2 + " " + nm3_result.array.get(i).str);
// 0~9까지의 숫자 랜덤으로 받아서 2개 입력 후 , 사칙연산 랜덤으로 설정
System.out.println();
}
}
public static void main(String[] args) {
// 랜덤 객체 만들기
number_3 nm3 = new number_3();
nm3.insert(nm3);
nm3.processPrint();
}
}
package ClassReview_2_Inheritance;
public class number_4 extends number_3 {
public float resultCal(int a, int b, String c) {
if (c.equals("+")) {
return a + b;
} else if (c.equals("-")) {
return a - b;
} else if (c.equals("*")) {
return a * b;
} else if (c.equals("/")) {
return a / b;
} else {
// 잘못된 입력
return 999999;
}
}
public static void main(String[] args) {
number_3 nm3 = new number_3();
number_4 resultArr = new number_4();
resultArr.insert(nm3);
resultArr.processPrint();
System.out.println("\n");
for(int i = 0 ; i <5;i++) {
System.out.println("index ("+i+")의 결과값 => "+ resultArr.resultCal(resultArr.nm3_result.array.get(i).num_1,resultArr.nm3_result.array.get(i).num_2,resultArr.nm3_result.array.get(i).str));
System.out.println();
}
}
}
반응형