diff --git a/day02-instance-class/src/main/java/com/survivalcoding/GreatWizard.java b/day02-instance-class/src/main/java/com/survivalcoding/GreatWizard.java new file mode 100644 index 0000000..d81936d --- /dev/null +++ b/day02-instance-class/src/main/java/com/survivalcoding/GreatWizard.java @@ -0,0 +1,30 @@ +package com.survivalcoding; + +public class GreatWizard extends Wizard { + public GreatWizard() { + setMp(150); + } + + @Override + public void heal(Hero hero) { + if (getMp() < 5) { + System.out.println("마나가 부족합니다"); + return; + } + hero.setHp(hero.getHp() + 25); + setMp(getMp() - 5); + System.out.println("힐을 시전했습니다. 대상 HP: " + hero.getHp()); + } + + public void superHeal(Hero hero) { + if (getMp() < 50) { + System.out.println("마나가 부족합니다"); + return; + } + + hero.setHp(100); + setMp(getMp() - 50); + System.out.println("슈퍼 힐을 시전했습니다. 대상 HP: " + hero.getHp()); + } +} + diff --git a/day02-instance-class/src/main/java/com/survivalcoding/PoisonSlime.java b/day02-instance-class/src/main/java/com/survivalcoding/PoisonSlime.java new file mode 100644 index 0000000..3b26ba8 --- /dev/null +++ b/day02-instance-class/src/main/java/com/survivalcoding/PoisonSlime.java @@ -0,0 +1,24 @@ +package com.survivalcoding; + +public class PoisonSlime extends Slime { + private int poisonCount = 5; + + public PoisonSlime(String suffix) { + super(suffix); + } + + @Override + void attack(Hero hero) { + super.attack(hero); + + if (poisonCount > 0) { + System.out.println("추가로, 독 포자를 살포했다!"); + + int poisonDamage = hero.getHp() / 5; + hero.setHp(hero.getHp() - poisonDamage); + System.out.println(poisonDamage + "포인트 데미지"); + + poisonCount--; + } + } +} diff --git a/day02-instance-class/src/main/java/com/survivalcoding/Slime.java b/day02-instance-class/src/main/java/com/survivalcoding/Slime.java new file mode 100644 index 0000000..106e06c --- /dev/null +++ b/day02-instance-class/src/main/java/com/survivalcoding/Slime.java @@ -0,0 +1,21 @@ +package com.survivalcoding; + +public class Slime { + + final String suffix; + int hp; + + public Slime(String suffix) { + this.suffix = suffix; + this.hp = 50; + } + + // 생성자, getter, setter 작성 + + void attack(Hero hero) { + System.out.println("슬라임 " + suffix + "이/가 공격했다"); + System.out.println("10의 데미지"); + + hero.setHp(hero.getHp() - 10); + } +} diff --git a/day02-instance-class/src/main/java/com/survivalcoding/Wizard.java b/day02-instance-class/src/main/java/com/survivalcoding/Wizard.java index 3e87419..429c0cb 100644 --- a/day02-instance-class/src/main/java/com/survivalcoding/Wizard.java +++ b/day02-instance-class/src/main/java/com/survivalcoding/Wizard.java @@ -1,4 +1,69 @@ package com.survivalcoding; public class Wizard { + + private int hp; + private int mp = 100; + private String name; + private Wand wand; + + public int getHp() { + return hp; + } + + public void setHp(int hp) { + if (hp < 0) { + this.hp = 0; + return; + } + this.hp = hp; + } + + public int getMp() { + return mp; + } + + public String getName() { + return name; + } + + public void setName(String name) { + if (name == null || name.length() < 3) { + throw new IllegalArgumentException("마법사의 이름은 null일 수 없고 3문자 이상이어야 합니다"); + } + this.name = name; + } + + public void setMp(int mp) { + if (mp < 0) { + throw new IllegalArgumentException("마법사의 MP는 0 이상이어야 합니다"); + } + this.mp = mp; + } + + public void setWand(Wand wand) { + if (wand == null) { + throw new IllegalArgumentException("마법사의 지팡이는 null일수 없습니다."); + } + this.wand = wand; + } + + public void heal(Hero hero) { + if (mp < 10) { + System.out.println("마나가 부족합니다"); + return; + } + + hero.setHp(hero.getHp() + 20); + mp -= 10; + System.out.println("힐을 시전했습니다. 대상 HP: " + hero.getHp()); + } + + + public void fireball(Hero hero) { + + + } + + } diff --git "a/day02-instance-class/src/main/java/com/survivalcoding/\354\227\260\354\212\265\353\254\270\354\240\234_1.java" "b/day02-instance-class/src/main/java/com/survivalcoding/\354\227\260\354\212\265\353\254\270\354\240\234_1.java" new file mode 100644 index 0000000..ce53d70 --- /dev/null +++ "b/day02-instance-class/src/main/java/com/survivalcoding/\354\227\260\354\212\265\353\254\270\354\240\234_1.java" @@ -0,0 +1,28 @@ +package com.survivalcoding; + +public class 연습문제_1 { + /* 1. Person Student (O) + 2. car Engine (X) + 3. Father Child (X) + 4. Food Sushi (O) + 5. SuperMan Man (X) + + + + */ +} + + +/* 연습문제_2 + 1 2 3 +부모 클래스 ElectronicDevice Vehicle Book + + + Phone Car Dictionary + + + +자식 클래스 I-Phone Bus EnglishDictionary + + + */ \ No newline at end of file