day11-引用数据类型使用的案例2
This commit is contained in:
@@ -4,4 +4,42 @@ package com.inmind.reference05;
|
|||||||
案例:英雄角色,获取武器,获取防御装,闯关,施放技能
|
案例:英雄角色,获取武器,获取防御装,闯关,施放技能
|
||||||
*/
|
*/
|
||||||
public class Demo07 {
|
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 Weapon weapon;//武器属性 自定义引用数据类型作为了成员变量
|
||||||
private Armor armor;//防具属性
|
private Armor armor;//防具属性
|
||||||
|
|
||||||
|
private Skill skill;//技能属性,接口作为了属性
|
||||||
|
|
||||||
private ArrayList<Weapon> weapons = new ArrayList<>();//武器的背包
|
private ArrayList<Weapon> weapons = new ArrayList<>();//武器的背包
|
||||||
// private ArrayList<Armor> armors;//武器的背包
|
// private ArrayList<Armor> armors;//武器的背包
|
||||||
|
|
||||||
@@ -27,6 +29,23 @@ public class Hero {
|
|||||||
System.out.println(this.name+"使用了"+this.armor.getName()+"防具,防御了"+this.armor.getProtectNum()+"伤害");
|
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() {
|
public String getName() {
|
||||||
return name;
|
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