본문 바로가기

Java

#044 객체지향 문법 및 구성 요약

객체지향 문법 및 구성 요약을 코드로 설명한 것!

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("칼로 공격");
	}
}

 

 

 

 

*전체적인 일상은 노션을 통해 작성하고 있습니다.

링크 : www.notion.so/014-212bbef67be54fceb459ee99f92487a0