java 创建一个LOL中的英雄类和怪物类 初学者,求大神指点

题目:创建一个LOL中的英雄类和怪物类,要求:
怪物类中加入生命值属、等级属性,生命值=等级*1000
英雄类中加入“经验值”,“等级”,“攻击力”等属性变量,加入“击打”方法,击打的目标是怪物,击打的结果是怪物的生命值-英雄攻击力
考点:类的声明、方法的声明、对象的声明与属性调用

希望可以在代码行上方 注释一下每行代码的作用,
方便新手理解,
谢谢大神

static class Hero{ //英雄类
    private String name;//英雄的名字
    private Integer experience;//经验值
    private Integer level; //英雄等级
    private Integer attack; //攻击力

    public Hero(String name){ //新建英雄的构造方法
        this.name = name;//输入名字
        this.experience = 0;//初始经验值为0
        this.level = 1;//初始等级为1
        this.attack = 100;//初始攻击力为100
    }

    public void AttackMonster(Monster monster){ //攻击怪物的方法
        System.out.println("英雄<"+this.name+">攻击<"+monster.getName()+">造成"+this.attack+"点伤害");
        Integer hp = monster.getHealthPoint();//怪物被攻击前血量
        if (hp > this.attack) { //判断 如果怪物的血量大于攻击力
            hp = hp - this.attack;//怪物的血量 就减少攻击力的点数
        } else { //如果怪物的血量 等于或者小于攻击力
            hp = 0; //怪物血量为0 死亡
        }
        monster.setHealthPoint(hp); //改变怪物被攻击后的血量
        System.out.println("怪物剩余血量"+hp);
        if (hp == 0 && this.level <18){ //如果怪物死亡 且英雄等级没有达到最高的18级
            System.out.println("英雄<"+this.name+">的经验值增加"+monster.getExperience()+"点");
            this.experience = this.experience + monster.getExperience(); //英雄的经验值 增加
            if (this.experience >= level * 100){ //设定 英雄升级所需经验值为 等级*100  如果英雄增加后的经验值达到升级条件
                this.experience = this.experience - level*100; //经验值减去当前升级需要的经验值 溢出的进入下一个等级经验
                this.level = this.level + 1;//英雄等级 +1
                this.attack = this.attack + 20; //设定 每升一级英雄攻击力 +20
                System.out.println("英雄<"+this.name+">升级了,等级+1,攻击力+20,当前等级"+this.level+",当前攻击力"+this.attack);
            }
        }
    }

    //获取英雄名字的方法
    public String getName() {
        return name;
    }
    //改变英雄名字的方法
    public void setName(String name) {
        this.name = name;
    }

    //获取英雄当前经验值的方法
    public Integer getExperience() {
        return experience;
    }
    //改变英雄当前经验值的方法
    public void setExperience(Integer experience) {
        this.experience = experience;
    }
    //获取英雄当前等级的方法
    public Integer getLevel() {
        return level;
    }
    //改变英雄当前等级的方法
    public void setLevel(Integer level) {
        this.level = level;
    }
    //获取英雄当前攻击力的方法
    public Integer getAttack() {
        return attack;
    }
    //改变英雄当前攻击力的方法
    public void setAttack(Integer attack) {
        this.attack = attack;
    }
}

static class Monster{ //怪物类
    private String name; //怪物的名字
    private Integer healthPoint;//生命值
    private Integer level;//怪物等级
    private Integer experience; //怪物的经验值

    public Monster(String name,Integer level){ //创建怪物的构造方法 参数 名字,等级
        this.name = name; //初始化怪物的名字
        this.level = level; //初始化怪物的等级
        this.healthPoint = level * 1000; //初始化怪物的血量
        this.experience = level * 10;//初始化怪物的经验,英雄杀死后可获得,设定怪物经验值为等级*10
    }

    public Integer getHealthPoint() {
        return healthPoint;
    }

    public void setHealthPoint(Integer healthPoint) {
        this.healthPoint = healthPoint;
    }

    public Integer getLevel() {
        return level;
    }

    public void setLevel(Integer level) {
        this.level = level;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getExperience() {
        return experience;
    }

    public void setExperience(Integer experience) {
        this.experience = experience;
    }
}
public static void main(String[] args) throws Exception {
    Hero hero = new Hero("德玛西亚之力"); //新建一个英雄
    Monster monster = new Monster("小兵",1);//新建一个小兵
    do {
        hero.AttackMonster(monster); //攻击怪物
    }while (monster.getHealthPoint() != 0);  //如果怪物没死 一直攻击
}

温馨提示:答案为网友推荐,仅供参考
相似回答