java6 3,java 2018.6.3 作业

5, (封装、继承、多态)创建三个类,组成一个继承树,表示游戏中的角色。

描述如下:

父类: Role。是所有职业的父类。 属性: name,表示角色的名字。

方法: public int attack() ,该方法返回值为角色的攻击对敌人的伤害。

Role 有两个子类:

1) 法师Magicer 属性:魔法等级(范围为1 ~ 10) 方法: public int attack() ,该方法返回法师的攻击对敌人造成的伤害值。 法师攻击伤害值为:魔法等级*魔法基本伤害值(固定为5)

2) 战士Soldier 属性:攻击伤害值 方法: public int attack() ,该方法返回战士的攻击对敌人造成的伤害值。 战士的攻击伤害值为:其攻击伤害属性值 注意:上述的三个类所有属性都应当作为私有,并提供相应的get/set 方法。

再设计一个Team 类,表示一个组队。具有如下方法

1) addMember,表示组队增加一个成员。注意:组队成员最多为6 人

提示:应当利用一个数组属性,保存所有成员

2) attackSum,表示组队所有成员进行攻击时,对敌人造成的总伤害值

根据类图和描述,创建相应的类。并编写相应的测试代码。

Role.java

package org.zy.homework;

public abstract class Role {

public Role(String name) {

this.name=name;

}

private  String name="player";

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public abstract int attack();

}

Magicer.java

package org.zy.homework;

public class Magicer extends Role {

private int level;

public Magicer(String name) {

super(name);

}

public int getLevel() {

return level;

}

public void setLevel(int level) {

this.level = level;

}

@Override

public int attack() {

// TODO Auto-generated method stub

return getLevel()*5;

}

}

Soldier.java

package org.zy.homework;

public class Soldier extends Role{

public Soldier(String name) {

super(name);

}

private int hurt;

public int getHurt() {

return hurt;

}

public void setHurt(int hurt) {

this.hurt = hurt;

}

@Override

public int attack() {

// TODO Auto-generated method stub

return getHurt();

}

}

Team.java

package org.zy.homework;

public class Team {

int i=0;

Role[] person=new Role[6];

public void addMember(Role role) {

for(i=0;i<6;i++) {

person[i]=role;

}

}

public int attackSum() {

int sum=0;

for(i=0;i<6;i++) {

sum=sum+person[i].attack();

}

return sum;

}

}

Text.java

package org.zy.homework;

public class Text {

public static void main(String[] args) {

Team t=new Team();

Role m=new Magicer("m1");

Role s=new Soldier("s1");

Magicer m1=(Magicer)m;

Soldier s1=(Soldier)s;

m1.setLevel(5);

s1.setHurt(6);

for(int i=0;i<2;i++) {

t.addMember(m1);

}

for(int i=0;i<4;i++) {

t.addMember(s1);

}

System.out.println("总伤害值为"+t.attackSum());

}

}

;

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值