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???
谢谢各位! 展开
*某公司要开发新游戏,请用面向对象的思想设计怪物类,
*属性包括:名字、生命值、攻击力、防御力
*方法:攻击的方法,防御的方法
要求:
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???
谢谢各位! 展开
展开全部
//防御方法通过输入参数接收攻击力,如果攻击力小于防御力,生命值不受影响,反之伤害值=攻击力-防御力
public void recovery(int attack){
recovery(15) 是你自己本身定义的方法,用来判断攻击力和防御能力的大小从而去改变他们的生命值。
比如就你那参数 15来说。 攻击是15 防御才10 所以对象会受到15-10=5的伤害
public void recovery(int attack){
recovery(15) 是你自己本身定义的方法,用来判断攻击力和防御能力的大小从而去改变他们的生命值。
比如就你那参数 15来说。 攻击是15 防御才10 所以对象会受到15-10=5的伤害
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
从代码来看,这属于回合制游戏。
小龟在攻击的同时遭受到15点的攻击力(有可能来自被攻击对象,或者被攻击对象有类似“伤害反弹”的技能),所以调用防御方法recovery(15);进行防御,受到5点伤害。
这里的15是传入的一个固定int值。说明小龟受到15点的恒定攻击。
小龟在攻击的同时遭受到15点的攻击力(有可能来自被攻击对象,或者被攻击对象有类似“伤害反弹”的技能),所以调用防御方法recovery(15);进行防御,受到5点伤害。
这里的15是传入的一个固定int值。说明小龟受到15点的恒定攻击。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
个人感觉你们老师应该是为了让你们多理解下对象吧。这个问题其实不是在于类的继承问题,而是在于把优先级分清楚了
其次,在表达式的拆分过程中应该把各变量,常量的位置记录下来,运算符的位置和优先级(这个很重要)记录下来。也就是在你的各个类中加一个记录位置的成员变量。
最后根据优先级从高到低,从左到右的输出。比如你的例子中:+ × / 和后面括号里的在同一优先级。那么按照从左到右的顺序输出,也可以存到二叉树结构里去。对于括号里的你也可以看做是一个表达式,直接作为一个子树处理
当然这只是我看了之后想到一些,估计写的时候还是会有一些问题。说的不好,请不要见怪。
其次,在表达式的拆分过程中应该把各变量,常量的位置记录下来,运算符的位置和优先级(这个很重要)记录下来。也就是在你的各个类中加一个记录位置的成员变量。
最后根据优先级从高到低,从左到右的输出。比如你的例子中:+ × / 和后面括号里的在同一优先级。那么按照从左到右的顺序输出,也可以存到二叉树结构里去。对于括号里的你也可以看做是一个表达式,直接作为一个子树处理
当然这只是我看了之后想到一些,估计写的时候还是会有一些问题。说的不好,请不要见怪。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2011-09-24
展开全部
15是指对方的攻击力,recovery(15)是判断在受到15的攻击时,小龟是否受伤及当前血量。小龟防御力只有10,会受到伤害
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
mon.recovery(15)调用了你定义的recovery方法,传入15这个值
public void recovery(int attack){
public void recovery(int attack){
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |