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 |