전사가 여러개의 무리 다루기 v2

인철·2023년 10월 13일
0

algorithm

목록 보기
39/91

심화문제

문제
class Main {
	public static void main(String[] args) {
		전사 a전사1 = new 전사();
		
		a전사1.a왼손무기 = new();
		a전사1.공격();
		// 출력 => 전사가 왼손으로 칼(을)를 사용합니다.
		
		전사 a전사2 = new 전사();
		a전사2.a왼손무기 = new();
		a전사2.a오른손무기 = new 도끼();
		a전사2.공격();
		// 출력 => 전사가 왼손으로 창(을)를 사용합니다.
		// 출력 => 전사가 오른손으로 도끼(을)를 사용합니다.
	}
}

정답
class Main {
	public static void main(String[] args) {
		전사 a전사1 = new 전사();
		
		a전사1.a왼손무기 = new();
		a전사1.공격();
		// 출력 => 전사가 왼손으로 칼(을)를 사용합니다.
		
		전사 a전사2 = new 전사();
		a전사2.a왼손무기 = new();
		a전사2.a오른손무기 = new 도끼();
		a전사2.공격();
		// 출력 => 전사가 왼손으로 창(을)를 사용합니다.
		// 출력 => 전사가 오른손으로 도끼(을)를 사용합니다.
	}
}

class 전사 {
	무기 a왼손무기; // 전사가 가진 왼손에 든 무기
	무기 a오른손무기; // 전사가 가진 오른손에 든 무기
	
	void 공격() {
		if (a왼손무기 != null) { // 왼손에 무기가 존재하는 경우
			a왼손무기.작동("전사", "왼손"); // 왼손에 든 무기로 작동 실행
		}
		if (a오른손무기 != null) { // 오른손에 무기가 존재하는 경우
			a오른손무기.작동("전사", "오른손"); // 오른손에 든 무기로 작동 실행
		}
	}
}

class 무기 {
	void 작동(String 사용자, String 사용부위) {} // 무기의 작동 방식을 정의하지 않음
}

classextends 무기 {
	void 작동(String 사용자, String 사용부위) {
		System.out.println(사용자 + "가 " + 사용부위 + "으로 칼(을)를 사용합니다."); // 사용자가 사용하는 부위와 함께 칼로 공격하는 메시지 출력
	}
}

classextends 무기 {
	void 작동(String 사용자, String 사용부위) {
		System.out.println(사용자 + "가 " + 사용부위 + "으로 창(을)를 사용합니다."); // 사용자가 사용하는 부위와 함께 창으로 공격하는 메시지 출력
	}
}

class 도끼 extends 무기 {
	void 작동(String 사용자, String 사용부위) {
		System.out.println(사용자 + "가 " + 사용부위 + "으로 도끼(을)를 사용합니다."); // 사용자가 사용하는 부위와 함께 도끼로 공격하는 메시지 출력
	}
}
profile
같은글이있어도양해부탁드려요(킁킁)

0개의 댓글