当前位置: 代码迷 >> J2SE >> 初学javaSe ,求大神帮干道题来理解代码
  详细解决方案

初学javaSe ,求大神帮干道题来理解代码

热度:85   发布时间:2016-04-23 20:34:51.0
初学javaSe ,求大神帮做道题来理解代码
英雄战斗的游戏,请根据如下类图编写代码

生命类Life,提供初始化姓名和生命值的构造方法,提供战斗方法fight,将其生命值减1,并打印出"Life 战斗...",提供打印方法printInfo,打印出当前对象的姓名和生命值。
英雄类(Hero),提供带姓名、等级参数构造的构造方法,初始化姓名和生命值(英雄的生命值=等级*100),提供战斗的方法,将妖怪的生命值减2,并打印出"Hero 赤手空拳战斗...",传入绝世好剑,妖怪生命减5,传入倚天剑,妖怪生命减8,传入金箍棒,妖怪生命减10,并打印"Hero 用XXX战斗...".
妖怪类(Monster),提供构造函数初始化姓名和生命值,将生命值初始化为500,愤怒一次,愤怒值加1,每次战斗英雄减少的生命值(愤怒值*2),并打印"Monster 妖怪反击"
------解决方案--------------------
public class Life {
 private String name;
 private int bloodNum;
 public void setName(String name) {
  this.name = name;
 }
 public String getName() {
  return name;
 }
 public void setBloodNum(int bloodNum) {
  this.bloodNum = bloodNum;
 }
 public int getBloodNum() {
  return bloodNum;
 }
 public Life(String name, int bloodNum) {
  this.name = name;
  this.bloodNum = bloodNum;
 }
 public void fight(Life life) {
  bloodNum--;
  System.out.println("Life战斗……");
 }
 public void printInfo() {
  System.out.println("name is:"+ name +"bloodNum is:" + bloodNum);
 }
}

public class Hero extends Life {
 private int grade;
 public Hero(String name, int grade) {
  super(name, grade*100);
  this.grade = grade;
 }
 public void fight(Monster monster) {
  monster.setBloodNum(monster.getBloodNum()-2);
  System.out.println("Hero赤手空拳战斗");
 }
 public void fight(Monster monster, String arms) {
  if(arms.equals("绝世好剑")) {
   monster.setBloodNum(monster.getBloodNum()-5);
   System.out.println("Hero用绝世好剑战斗……");
  } else if(arms.equals("倚天剑")) {
   monster.setBloodNum(monster.getBloodNum()-8);
   System.out.println("Hero用倚天剑战斗……");
  } else if(arms.equals("金箍棒")) {
   monster.setBloodNum(monster.getBloodNum()-10);
   System.out.println("Hero用金箍棒战斗……");
  }
 }
}

public class Monster extends Life {
 public int attackNum = 0;
 public Monster(String name) {
  super(name, 500);
 }
 public void anger() {
  attackNum++;
 }
 public void fight(Hero hero) {
  hero.setBloodNum(hero.getBloodNum()-attackNum*2);
  System.out.println("Monster妖怪反击");
 }
}