1道JAVA面向对象的练习题,最后不懂!求助!

/***某公司要开发新游戏,请用面向对象的思想设计怪物类,*属性包括:名字、生命值、攻击力、防御力*方法:攻击的方法,防御的方法要求:1、通过构造函数实现属性赋值2、攻击... /**
*某公司要开发新游戏,请用面向对象的思想设计怪物类,
*属性包括:名字、生命值、攻击力、防御力
*方法:攻击的方法,防御的方法
要求:
1、通过构造函数实现属性赋值
2、攻击方法,描述攻击状态,内容包括名字,生命值,攻击力
3、防御方法通过输入参数接收攻击力,
如果攻击力小于防御力,伤害值=0,反之伤害值=攻击力-防御力
根据伤害值情况显示不同的防御信息,内容包括名字,防御力,防御后的生命值
4、编写测试方法,通过构造实例化怪物类的对象并调用相关方法,测试数据信息自定
*
*/
public class Monster {
public String name;//怪物的名字
public int blood;//生命值
public int attckPower;//攻击力
public int defendPower;//防御力

public Monster(){
}

//构造函数实现属性赋值
public Monster(String name,int blood,int attackPower,int defendPower){
this.name=name;
this.blood=blood;
this.attckPower=attackPower;
this.defendPower=defendPower;
}

//攻击方法,描述攻击状态,内容包括名字,生命值,攻击力
public String attack(){
return this.name+"展开攻击\n当前生命值是:"+this.blood+"\n攻击力是:"+this.attckPower;
}

//防御方法通过输入参数接收攻击力,如果攻击力小于防御力,生命值不受影响,反之伤害值=攻击力-防御力
public void recovery(int attack){
if(this.defendPower>=attack){
System.out.println("防御成功!\n"+this.name+"以"+this.defendPower+"的防御力抵御了进攻!");
System.out.println("当前生命值为:"+blood);
}
else{
System.out.println("防御失败!\n"+this.name+"以"+this.defendPower+"的防御力未能抵御进攻!");
System.out.println("当前生命值为:"+(blood-(attack-defendPower)));
}
}

public static void main(String[] args){
//实例化怪物对象
Monster mon=new Monster("小龟",200,50,10);
//调用攻击方法
System.out.println(mon.attack());
System.out.println("========================");
//调用防御方法
mon.recovery(15);
}
}

最后的recovery(15)是什么意思??尤其那么15???
谢谢各位!
展开
 我来答
潭欧莲
2011-09-23 · 超过38用户采纳过TA的回答
知道小有建树答主
回答量:118
采纳率:100%
帮助的人:96.2万
展开全部
//防御方法通过输入参数接收攻击力,如果攻击力小于防御力,生命值不受影响,反之伤害值=攻击力-防御力
public void recovery(int attack){
recovery(15) 是你自己本身定义的方法,用来判断攻击力和防御能力的大小从而去改变他们的生命值。
比如就你那参数 15来说。 攻击是15 防御才10 所以对象会受到15-10=5的伤害
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
endymion_c
2011-09-23 · TA获得超过2067个赞
知道小有建树答主
回答量:968
采纳率:0%
帮助的人:960万
展开全部
从代码来看,这属于回合制游戏。
小龟在攻击的同时遭受到15点的攻击力(有可能来自被攻击对象,或者被攻击对象有类似“伤害反弹”的技能),所以调用防御方法recovery(15);进行防御,受到5点伤害。
这里的15是传入的一个固定int值。说明小龟受到15点的恒定攻击。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
手机用户35256
2011-09-24 · TA获得超过1041个赞
知道答主
回答量:479
采纳率:0%
帮助的人:215万
展开全部
个人感觉你们老师应该是为了让你们多理解下对象吧。这个问题其实不是在于类的继承问题,而是在于把优先级分清楚了

其次,在表达式的拆分过程中应该把各变量,常量的位置记录下来,运算符的位置和优先级(这个很重要)记录下来。也就是在你的各个类中加一个记录位置的成员变量。

最后根据优先级从高到低,从左到右的输出。比如你的例子中:+ × / 和后面括号里的在同一优先级。那么按照从左到右的顺序输出,也可以存到二叉树结构里去。对于括号里的你也可以看做是一个表达式,直接作为一个子树处理

当然这只是我看了之后想到一些,估计写的时候还是会有一些问题。说的不好,请不要见怪。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-09-24
展开全部
15是指对方的攻击力,recovery(15)是判断在受到15的攻击时,小龟是否受伤及当前血量。小龟防御力只有10,会受到伤害
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
toto71229
2011-09-23 · TA获得超过808个赞
知道小有建树答主
回答量:513
采纳率:0%
帮助的人:467万
展开全部
mon.recovery(15)调用了你定义的recovery方法,传入15这个值
public void recovery(int attack){
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式