package org.jsoft.assigement;
abstract public class Role {
//所有的职业的父类
private String name;//角色的名字
public Role(){
this.name="未命名的角色";
}
public Role(String name){
this.name=name;
}
public String getName(){
return this.name;
}
public void setName(String name){
this.name=name;
}
abstract public int attact();//返回值为角色攻击敌人的伤害值
}
package org.jsoft.assigement;
public class Magicer extends Role{//法师类
private int level;//魔法等级
public Magicer(){
super();
this.level=1;
}
public Magicer(String name,int level){
super(name);
if(level>=0&&level<=10){
this.level=level;
}
else{
System.out.println("等级错误,已默认为1级!");
this.level=1;
}
}
private static final int manaBaseDamage=5;//魔法基本伤害固定为5
public static int getManabasedamage() {
return manaBaseDamage;
}
public int getLevel() {
return level;
}
public void setLevel(int level) {
if(level<=10&&level>=1){
this.level = level;
}
else{
System.out.println("超出等级范围,无法修改!");
}
}
@Override
public int attact() {
//返回法师攻击敌人造成的伤害值,等级*魔法基本伤害值
return level*manaBaseDamage;
}
}
package org.jsoft.assigement;
public class Soldier extends Role{//战士类,继承Role类
private int attactDamageValue;//攻击伤害值
public Soldier(){
super();
this.attactDamageValue=25;
}
public Soldier(String name,int attactDamageValue){
super(name);
this.attactDamageValue=attactDamageValue;
}
public int getAttactDamageValue() {
return attactDamageValue;
}
public void setAttactDamageValue(int attactDamageValue) {
this.attactDamageValue = attactDamageValue;
}
@Override
public int attact() {
//返回战士攻击敌人造成的伤害值
return attactDamageValue;
}
}
package org.jsoft.assigement;
public class Team {
private Role []menber=new Role[6];
private int k=0;//记录Team成员menber的实际数量
public void addMenber(Role role){
if(k>=6){
System.out.println("成员以达到6人,无法再增加!");
}
else{
++k;
this.menber[k-1]=role;
}
}
public int attactSum(){
//返回所有成员对敌人造成的总伤害指
int sum=0;
for(int i=0;i<k;i++){
sum+=this.menber[i].attact();
}
return sum;
}
public void printMenber(Team team){
for(int i=0;i<k;i++){
System.out.println(team.menber[i].getName()+" "+team.menber[i].attact());
}
}
//测试
public static void main(String []args){
int s=0;
Team team=new Team();
Magicer magicer1=new Magicer("拉拉",6);
team.addMenber(magicer1);
Magicer magicer2=new Magicer();
team.addMenber(magicer2);
Magicer magicer3=new Magicer("小小",10);
team.addMenber(magicer3);
Soldier soldier1=new Soldier();
team.addMenber(soldier1);
Soldier soldier2=new Soldier("剑圣",60);
team.addMenber(soldier2);
Soldier soldier3=new Soldier("蛮王",70);
team.addMenber(soldier3);
s=team.attactSum();
System.out.println(s);
team.printMenber(team);
magicer2.setLevel(11);
Magicer magicer4=new Magicer("娜娜",11);
team.addMenber(magicer4);
}
}