设计一个法师Priest类,给予名字、攻击力等属性, 并提供一个magic(魔法)方法 magic()/1释放魔法 magic(String name)//向指定人物释放魔法 magic(String name1, String name2)//向指定的两 个人物释放魔法
时间: 2024-11-12 21:38:52 浏览: 17
Priority Estimation Tool (AHP):PriEsT是用于分析层次过程(AHP)的决策工具。-开源
设计一个名为`Priest`的法师类,我们可以考虑以下属性和方法:
```java
public class Priest {
private String name; // 法师名称
private int baseAttackPower; // 攻击力(基础值)
private Map<String, Integer> magicEffects; // 存储魔法及其效果
// 构造函数
public Priest(String name, int baseAttackPower) {
this.name = name;
this.baseAttackPower = baseAttackPower;
this.magicEffects = new HashMap<>();
}
// 获取法师名字
public String getName() {
return name;
}
// 设置法师名字
public void setName(String name) {
this.name = name;
}
// 获取攻击力
public int getBaseAttackPower() {
return baseAttackPower;
}
// 普通魔法释放方法
public void magic() {
// 默认释放基础攻击力的魔法
System.out.println(name + "使用普通魔法,攻击力为:" + baseAttackPower);
}
// 向指定人物释放魔法
public void magic(String target) {
if (magicEffects.containsKey(target)) {
System.out.println(name + "对" + target + "释放魔法,效果为:" + magicEffects.get(target));
} else {
System.out.println("警告:无法找到名为" + target + "的魔法效果!");
}
}
// 向两个指定人物同时释放魔法
public void magic(String target1, String target2) {
if (magicEffects.containsKey(target1) && magicEffects.containsKey(target2)) {
System.out.println(name + "同时对" + target1 + "和" + target2 + "释放魔法,分别造成:" + magicEffects.get(target1) + "和" + magicEffects.get(target2) + "伤害");
} else {
System.out.println("警告:找不到其中一个或两者的目标魔法效果!");
}
}
// 添加魔法效果方法
public void addMagic(String name, int effect) {
magicEffects.put(name, effect);
}
// 从魔法效果中移除魔法
public void removeMagic(String name) {
magicEffects.remove(name);
}
}
```
阅读全文