Java/chapter2

ch07 Hero

낭구리 2021. 8. 25. 16:13

 

package ch07;

public class Hero {

	private String name;
	private int hp;
	private int power;
	
	public Hero(String name, int hp, int power) {
		super();
		this.name = name;
		this.hp = hp;
		this.power = power;
	}

	//getter, setter
	public String getName() {
		return this.name; //이런 메서드를 만들게 되면 반환하라.
		//getter : readonly
	}
	
	public int getHp() {
		return this.hp; 
	}
	public int getPower() {
		return this.power; 
	}
	
	//setter 멤버변수에 접근해서 수정을 해야할경우 Ex)공격력을 업그레이드할경우 
	public void setPower(int power) {
		//()set은 매개변수가 필요하다.
		this.power = power;
	}
	
	//문제 1 setName
	public void setName(String name) {
		//()set은 매개변수가 필요하다.
		this.name = name;
	}
	
	//문제 2 setHp
	public void setHp(int hp) {
		//()set은 매개변수가 필요하다.
		if(hp < 0) {
			System.out.println("잘못된 입력입니다");
		}else {
			this.hp = hp;			
		}
	}
	
	//set왜 써야하나 
	//설계자가 제어권을 가지게 됨
	//메서드로 쓰기 때문에 컨트롤할수 있는 코드를 만들수 있다 -200을 넣어도 잘못된입력(if else를 사용)이 출력(방어적접근가능)
	//갈증이 100일때 물을 마셔서 행동을 함으로써 갈증이 낮춰지게된다.
	//갈증을 직접적으로 낮추는게 아닌 메서드(행동)를 함으로써 낮추게되는 원리
	
	
	
	
	
	
}

 

package ch07;

public class HeroMainTest {

	public static void main(String[] args) {

		Hero hero = new Hero("질럿", 100, 10);

		String name = hero.getName(); // String name이라는 변수에 담아둔다.
		System.out.println(name);

		int hp = hero.getHp(); // get은 읽기만 가능하도록 수정x
		System.out.println(hp);

		int power = hero.getPower();
		System.out.println(power);

		// 공격력 업그레이드
		hero.setPower(20);
		int power2 = hero.getPower();
		System.out.println(power2);

		hero.setName("다크템플러");
		String power3 = hero.getName();
		System.out.println(power3);

		hero.setHp(200);
		int power4 = hero.getHp();
		System.out.println(power4);

	}

}

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

ch09 NumberPrinter  (0) 2021.08.25
ch08 Person this란?  (0) 2021.08.25
ch07 Bank  (0) 2021.08.25
ch06 Car  (0) 2021.08.25
ch05 별모양 역으로 5->1  (0) 2021.08.25