吉软_Java57_第九次作业
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,表示组队所有成员进行攻击时,对敌人造成的总伤害值 省略 get/set 方法后的类图如下:
根据类图和描述,创建相应的类。并编写相应的测试代码。
package org.jsoft.text;
public abstract class Role {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public abstract String attack();
}
package org.jsoft.text;
public class Magicer extends Role{
private int level;
public int getLevel() {
return level;
}
public void setLevel(int level) {
this.level = level;
}
public Magicer(int level){
this.level=level;
}
@Override
public String attack() {
// TODO Auto-generated method stub
return getName()+"的伤害值为:"+getLevel()*5;
}
}
package org.jsoft.text;
public class Soldier extends Role{
private int hurt;
public int getHurt() {
return hurt;
}
public void setHurt(int hurt) {
this.hurt = hurt;
}
public Soldier(int hurt){
this.hurt=hurt;
}
@Override
public String attack() {
// TODO Auto-generated method stub
return getName()+"的伤害值为:"+getHurt();
}
}
package org.jsoft.text;
public class Team {
public String attackSum(){
String Sum = "";
for(int j=0;j<i;j++){
Sum=Sum+p[j].attack();
}
return Sum;
}
Role []p=new Role[6];
int i=0;
public void addMember(Role role){
if(i<7){
p[i++]=role;
}else{
System.out.println("人数已满");
}
}
}
package org.jsoft.text;
import java.util.Scanner;
public class TextRole {
public static void main(String[] args) {
Role r=new Magicer(3);
r.setName("法师");
System.out.println(r.attack());
Role r1=new Soldier(4);
r1.setName("战士");
System.out.println(r1.attack());
Team t=new Team();
t.addMember(r);
t.addMember(r1);
System.out.println("总攻击伤害为:"+t.attackSum());
}
}
//结果
法师的伤害值为:15
战士的伤害值为:4
总攻击伤害为:法师的伤害值为:15战士的伤害值为:4
转载于:https://www.geek-share.com/detail/2721502559.html
- java-java57-第九次作业
- 吉软_Java57_第九次作业
- java-java57-第九次作业
- 吉软_java57_第九次作业
- 吉软_java57_第十二次作业
- 吉软-java57-第一次作业
- 吉软_Java57_第八次作业
- 吉软-java57-第一次作业
- java-java57-第十次作业
- Java57_孙明明_Java_作业1108
- 吉软_Java57_第十五次作业
- 吉软-java-第九次作业
- 吉软_Java57_第四次作业
- JAVA第九次作业(1)
- java-java57-第十二次作业
- 吉软_java57_第十六次作业
- Java57_孙明明_java_作业1104
- 吉软_java57_第一次作业
- 吉软-java57-第三次作业
- 吉软_java57_第十九次作业