본문 바로가기

JAVA/객체 코드

Robot 로봇

 

action함수를 작성해보는 문제

 

최상위 클래스인 Object[] arr 를 통해 나머지 로봇들을 다뤘다.

-> for문으로 action[ i ]안에 배열을 나눠담고

-> action함수에서 if문을 사용해 받은 매개변수를 나누어 class실행을 다르게 설정했다

public class mainClass {
	public static void main(String[] args) {
		/*
		Robot[] arr = { 
					new DanceRobot(), 
					new SingRobot(), 
					new DrawRobot()
		};
		for(int i=0; i< arr.length;i++)
			action(arr[i]);
		*/
		Object[] arr = {
			new DanceRobot(),
			new SingRobot(),
			new DrawRobot()
		};	
		
		for (int i = 0; i < arr.length; i++) {
			action(arr[i]);
		}
	}
	public static void action(Object obj) {
		if(obj instanceof DanceRobot) {
			((DanceRobot)obj).dance();
		}
		else if(obj instanceof SingRobot) {
			SingRobot s = (SingRobot)obj;
			s.sing();
		}
		else if(obj instanceof DrawRobot) {
			DrawRobot d = (DrawRobot)obj;
			d.draw();
		}
	}
}

//class Robot {}
class DanceRobot  {
	void dance() {
		System.out.println("춤을 춥니다.");
	}
}
class SingRobot  {
	void sing() {
		System.out.println("노래를 합니다.");
	}
}
class DrawRobot  {
	void draw() {
		System.out.println("그림을 그립니다.");
	}
}

'JAVA > 객체 코드' 카테고리의 다른 글

스타크래프트 ( Me)  (0) 2020.06.03
스타크래프트 (정답)  (0) 2020.06.03
final Class  (0) 2020.06.03
class 기초순서 문제  (0) 2020.06.03
static  (0) 2020.06.03