diff --git a/day11/src/com/inmind/reference05/Demo07.java b/day11/src/com/inmind/reference05/Demo07.java index 928f02e..3765a6b 100644 --- a/day11/src/com/inmind/reference05/Demo07.java +++ b/day11/src/com/inmind/reference05/Demo07.java @@ -4,4 +4,42 @@ package com.inmind.reference05; 案例:英雄角色,获取武器,获取防御装,闯关,施放技能 */ public class Demo07 { + public static void main(String[] args) { + //开始游戏 + //选择一个英雄 + Hero hero = new Hero(); + hero.setName("德玛西亚"); + //打怪,掉落一把屠龙刀 + Weapon weapon = new Weapon("屠龙刀", 999); + hero.setWeapon(weapon); + //打怪,掉落了一个反甲防具 + Armor armor = new Armor("反甲", 888); + hero.setArmor(armor); + //打boss + hero.attack(); + hero.protect(); + + //掉落了一项技能(匿名内部类实现) + /* + 简化写法: + hero.setSkill(new Skill() { + @Override + public void outSkill() { + System.out.println("野火燎原"); + } + });*/ + Skill skill = new Skill() { + @Override + public void outSkill() { + System.out.println("野火燎原"); + } + }; + + //英雄获取了技能 + hero.setSkill(skill); + + //英雄可以释放技能 + hero.outSkill(); + + } } diff --git a/day11/src/com/inmind/reference05/Hero.java b/day11/src/com/inmind/reference05/Hero.java index 5379f97..c2b4566 100644 --- a/day11/src/com/inmind/reference05/Hero.java +++ b/day11/src/com/inmind/reference05/Hero.java @@ -8,6 +8,8 @@ public class Hero { private Weapon weapon;//武器属性 自定义引用数据类型作为了成员变量 private Armor armor;//防具属性 + private Skill skill;//技能属性,接口作为了属性 + private ArrayList weapons = new ArrayList<>();//武器的背包 // private ArrayList armors;//武器的背包 @@ -27,6 +29,23 @@ public class Hero { System.out.println(this.name+"使用了"+this.armor.getName()+"防具,防御了"+this.armor.getProtectNum()+"伤害"); }; + //施放技能 + public void outSkill(){ + if (this.skill != null) { + System.out.println("英雄施放了技能:"); + this.skill.outSkill(); + } else { + System.out.println("您暂未获取技能"); + } + } + + public Skill getSkill() { + return skill; + } + + public void setSkill(Skill skill) { + this.skill = skill; + } public String getName() { return name; diff --git a/day11/src/com/inmind/reference05/Skill.java b/day11/src/com/inmind/reference05/Skill.java new file mode 100644 index 0000000..9aec003 --- /dev/null +++ b/day11/src/com/inmind/reference05/Skill.java @@ -0,0 +1,5 @@ +package com.inmind.reference05; +//定义 了一个技能接口,它的作用技能能施放 +public interface Skill { + void outSkill(); +}