두서없는 공부 노트/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();
			

		}
		
		
	}

}
반응형