Java/chapter2

ch10 Zergling Zealot Marine

낭구리 2021. 8. 26. 17:52
package ch10;

public class Zergling {

	private String name;
	private int power;
	private int hp;

	public Zergling(String name) {
		this.name = name;
		this.power = 5;
		this.hp = 100;
	}

	public String getName() {
		return this.name;
	}

	public int getPower() {
		return this.power;
	}

	public int getHp() {
		return this.hp;
	}

	public void showInfo() {
		System.out.println("====정보창(" + this.name + ")====");
		System.out.println("이름 : " + this.name);
		System.out.println("공격력 : " + this.power);
		System.out.println("체력 : " + this.hp);
		System.out.println("===========");
	}

//	// 저글링이 질럿을 공격합니다.
//	public void attackZealot(Zealot zealot) {
//		System.out.println(this.name + "이 질럿을 공격합니다");
//		zealot.beAttacked(this.power);
//	}
//
//	// 저글링이 마린을 공격합니다
//	public void attackMarine(Marine marine) {
//		System.out.println(this.name + "이 마린을 공격합니다");
//		marine.beAttacked(this.power);
//	}
	
	public void attack(Marine marine ) {
		System.out.println(this.name + " 이 " + marine.getName() + " 을 공격 합니다.");
		marine.beAttacked(this.power);
	}
	
		public void attack(Zealot zealot ) {
			System.out.println(this.name + " 이 " + zealot.getName() + " 을 공격 합니다.");
			zealot.beAttacked(this.power);
		}


	public void beAttacked(int power) {
		this.hp -= power;
		if (this.hp <= 0) {
			System.out.println(this.name + "은 사망하였습니다.");
			this.hp = 0;
		}
		
	}

}

 

package ch10;

public class Zealot {

	private String name;
	private int power;
	private int hp;

	public Zealot(String name) {
		this.name = name;
		this.power = 10;
		this.hp = 100;

	}

	// getter
	public String getName() {
		return this.name;
	}

	public int getPower() {
		return this.power;
	}

	public int getHp() {
		return this.hp;
	}

	public void showInfo() {
		System.out.println("====정보창("+this.name+")====");
		System.out.println("이름 : " + this.name);
		System.out.println("공격력 : " + this.power);
		System.out.println("체력 : " + this.hp);
		System.out.println("===========");
	}

//	// 질럿이 마린을 공격합니다.
//	public void attackMarine(Marine marine) {
//		System.out.println(this.name + "이 마린을 공격합니다");
//		marine.beAttacked(this.power);
//	}
//     //질럿이 저글링을 공격합니다.
//	public void attackZergling(Zergling zergling) {
//		System.out.println(this.name + "이 저글링을 공격합니다");
//		zergling.beAttack(this.power);
//
//	}
	
	public void attack(Marine marine ) {
		System.out.println(this.name + " 이 " + marine.getName() + " 을 공격 합니다.");
		marine.beAttacked(this.power);
	}
	
		public void attack(Zergling zergling ) {
			System.out.println(this.name + " 이 " + zergling.getName() + " 을 공격 합니다.");
			zergling.beAttacked(this.power);
		}


	// 공격을 받습니다.
	public void beAttacked(int power) {
		this.hp -= power;
		if (this.hp <= 0) {
			System.out.println(this.name + "은 사망하였습니다.");
			this.hp = 0;
		}
	}

}

 

package ch10;

public class Marine {
	private String name;
	private int power;
	private int hp;

	public Marine(String name) {
		this.name = name;
		this.power = 5;
		this.hp = 100;
	}

	public String getName() {
		return this.name;
	}

	public int getPower() {
		return this.power;
	}

	public int getHp() {
		return this.hp;
	}

	public void showInfo() {
		System.out.println("====정보창("+this.name+")====");
		System.out.println("이름 : " + this.name);
		System.out.println("공격력 : " + this.power);
		System.out.println("체력 : " + this.hp);
		System.out.println("===========");
	}

//	// 마린이 질럿을 공격합니다
//	public void attackZealot(Zealot zelot) {
//		System.out.println(this.name + " 이 질럿을 공격합니다.");
//		zelot.beAttacked(this.power);
//	}
//
//	// 마린이 저글링을 공격합니다
//	public void attackZergling(Zergling zergling) {
//		System.out.println(this.name + "이 저글링을 공격합니다.");
//		zergling.beAttack(this.power);
//	}
	//메서드 오버로딩을 이용해 봅시다.
	//attack 이라는 같은 메서드를 사용하지만 매개변수가 달라 사용이 가능하다
	public void attack(Zealot zealot ) {
		System.out.println(this.name + " 이 " + zealot.getName() + " 을 공격 합니다.");
		zealot.beAttacked(this.power);
	}
	
		public void attack(Zergling zergling ) {
			System.out.println(this.name + " 이 " + zergling.getName() + " 을 공격 합니다.");
			zergling.beAttacked(this.power);
		}

	// 마린이 공격당합니다.
	public void beAttacked(int power) {
		this.hp -= power;
		if (this.hp <= 0) {
			System.out.println(this.name + "은 사망하였습니다.");
			this.hp = 0;
		}

	}

}

'Java > chapter2' 카테고리의 다른 글

ch11 ArrayMainTest  (0) 2021.08.26
ch10 StarCraft MainTest  (0) 2021.08.26
ch09 FormainTest3  (0) 2021.08.26
ch09 Company  (0) 2021.08.25
ch09 Employee  (0) 2021.08.25