java 夏丽昀

package org.jsoft.game;

public abstract class Role {
private String name;//角色名字
public Role(String name){//构造方法。角色 名字
 
}
public Role(){
 
}
public String getName() {//get
 return name;
}

public void setName(String name) {//set
 this.name = name;
}
public abstract int attack();//角色的攻击属性
}

package org.jsoft.game;

public class Soldier extends Role{
  private int hurt ;
  //方法重载函数

  public Soldier(String name){
 
  }
 public int getHurt() {
 return hurt;
}
public void setHurt(int hurt) {
 this.hurt = hurt;
}
@Override//方法重写
public int attack() {
 // TODO Auto-generated method stub
 return hurt;
}
 

}

package org.jsoft.game;

public class Magicer extends Role {
 private int level;//攻击值
 
   
 public Magicer(String name) {
  super(name);
 }

 public Magicer() {

 }

 public int getLevel() {//get
  return level;
 }

 public void setLevel(int level) {//set
  this.level = level;
 }

 @Override//方法重写,改变攻击值
 public int attack() {
  // TODO Auto-generated method stub
  return level * 5;
 }

}

package org.jsoft.game;

public class Team {
  int i=0;
  Role[] member=new Role[6];//创建数组 ,建立六个对象
 
  public void addMember(Role role){
   member[i++]=role;//增加对象的人数到6
  
  }
  public int attackSum(){//对象的攻击属性
   int sum=0;
   for(int j=0;j<i;j++){
    sum+=member[j].attack();//增加对象的攻击属性
   }
   return sum;
  }
  
}
  

package org.jsoft.game;

import java.util.Scanner;

public class Test {
public static void main(String []args){
 //引用对象
 Role r=new Magicer(null);
 Soldier slodier=new Soldier(null);
 r=slodier;

 slodier.setName("小兵");//士兵的名字
 slodier.setHurt(5);//士兵的伤害值
 System.out.println(slodier.getName()+
   "的攻击伤害值为:"+slodier.attack());//输出士兵的名字和伤害值
    Magicer m=new Magicer();//引用 魔法师 
    r =m;//把魔法师代回数组
    m.setName("法师");//魔法师的名字
    m.setLevel(2);//魔法师的伤害值
    System.out.println(m.getName()+"的攻击伤害"
       +"值为"+m.attack());//输出魔法的名字和伤害值
   
    Team t=new Team();//调用团队
    System.out.println("法师的人数为");//输入法师的人数
    Scanner sc=new Scanner(System.in);
    int n=sc.nextInt();
    for(int i=0;i<n;i++){//利用for选择几个魔法师
    t.addMember(m);}
   System.out.println("士兵的人数为");//输入士兵的人数
   int nn=sc.nextInt();
   for (int j=0;j<nn;j++){
    t.addMember(slodier); 
   }
  
    System.out.print("所有成员的伤害总值为:"+t.attackSum());//输出所有人的伤害值
 
}
}

测试结果

 

小兵的攻击伤害值为:5
法师的攻击伤害值为10
法师的人数为
1
士兵的人数为
2
所有成员的伤害总值为:20

转载于:https://my.oschina.net/u/3715015/blog/1573542

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值