
JAVAで自分で作ったクラスを変数として引数で使うときに中身がどうなっているのかがわかりません。
pm.attack(h)のようにHero型の変数hを引数とした場合、具体的には何が入るのでしょうか?PoisonMatangoクラスでh.setHpのように参照ができるということはHeroの持つメンバが全て入ると考えていいのでしょうか?
public class Hero { String name; private int hp = 100; private int damage; public void attack(Matango m) { System.out.println(this.name + "の攻撃"); damage = (int) (Math.random() * 4 + 1); m.hp -= damage; System.out.println(damage + "ポイントのダメージをあたえた"); } public String getName() { return this.name; } public void setName(String name) { this.name = name; } public int getHp() { return this.hp; } public void setHp(int hp) { this.hp = hp; } } public class PoisonMatango extends Matango { private int poisonCount = 5; public PoisonMatango(char suffix) { super(suffix); } public void attack(Hero h) { super.attack(h); if (this.poisonCount > 0) { System.out.println("さらに毒の胞子をばらまいた"); int dmg = h.getHp() / 5; h.setHp(h.getHp() - dmg); System.out.println(dmg + "ポイントのダメージをあたえた"); this.poisonCount--; } } } public static void main(String[] args) { SuperHero sh = new SuperHero(); Hero h = new Hero(); Matango m = new Matango('A'); PoisonMatango pm = new PoisonMatango('A'); pm.attack(h); }
回答2件
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
退会済みユーザー
2017/05/19 06:48