객체지향 문법 및 구성 요약을 코드로 설명한 것!
class Main {
public static void main(String[] args) {
전사 a전사1 = new 전사();
전사 a전사2 = new 전사();
a전사1.나이 = 20;
a전사1.a무기 = new 칼();
a전사1.공격(); // 전사가 칼(으)로 공격합니다.
a전사2.a무기 = new 활();
a전사2.공격(); // 전사가 활(으)로 공격합니다.
}
}
class 전사 {
int 나이;
무기 a무기;
// main 메서드(갑)가 전사(을)에게 공격하라고 명령하면
// 전사(을)이 a무기를 통해서 (병, 여기서는 칼이나 활)에게 작동하라고 명령한다.
// 이런 구조이기 때문에 전사가 어떤 무기를 들고 있냐에 따라서 공격양식이 달라진다.
void 공격() {
a무기.작동();
}
}
class 무기 {
// 무기 클래스로 리모콘 만들때, 아래 메서드가 있기 때문에, `작동` 버튼이 생긴다.
// 즉 아래 메서드는, 실제로는 작동하지 않고, 리모콘 버튼용으로 존재한다.
void 작동() { }
}
class 칼 extends 무기 { // extends 무기 => 칼이 무기라고 자바에게 알려준다.
// 아래 메서드는 실제로 작동한다.
void 작동() {
System.out.println("칼로 공격");
}
}
class 활 extends 무기 { // extends 무기 => 활이 무기라고 자바에게 알려준다.
// 아래 메서드는 실제로 작동한다.
void 작동() {
System.out.println("칼로 공격");
}
}
*전체적인 일상은 노션을 통해 작성하고 있습니다.
'Java' 카테고리의 다른 글
#046 회원가입 관련 코드 (0) | 2020.12.11 |
---|---|
#045 [과제] 게임캐릭터 생성 및 공격하기 (0) | 2020.12.10 |
#043 클래스와 메서드로 할 수 있는 것들 개념 요약 (0) | 2020.12.10 |
#042 배열을 리스트로 변경하기 !! (0) | 2020.12.10 |
#041 상속과 객체지향의 문법 (0) | 2020.12.10 |