day11-引用数据类型使用的案例2
This commit is contained in:
@@ -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();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,6 +8,8 @@ public class Hero {
|
||||
private Weapon weapon;//武器属性 自定义引用数据类型作为了成员变量
|
||||
private Armor armor;//防具属性
|
||||
|
||||
private Skill skill;//技能属性,接口作为了属性
|
||||
|
||||
private ArrayList<Weapon> weapons = new ArrayList<>();//武器的背包
|
||||
// private ArrayList<Armor> 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;
|
||||
|
||||
5
day11/src/com/inmind/reference05/Skill.java
Normal file
5
day11/src/com/inmind/reference05/Skill.java
Normal file
@@ -0,0 +1,5 @@
|
||||
package com.inmind.reference05;
|
||||
//定义 了一个技能接口,它的作用技能能施放
|
||||
public interface Skill {
|
||||
void outSkill();
|
||||
}
|
||||
Reference in New Issue
Block a user