Role class:
package character;public class Role { /**
* The name of the Character
*/
String name; public Role(String name){
this.name = name;
} /**
* The total damage that Character due to Opponent
*/
public int attack(){
return 0;
} /**
* @return the name
*/
public String getName() {
return name;
} /**
* @param name the name to set
*/
public void setName(String name) {
this.name = name;
}}Soldier class:
package character;public class Soldier extends Role { private int attack; public Soldier(String name){
super(name);
} /**
* The total damage that Character due to Opponent
*/
public int attack(){
return 0;
} /**
* @return the attack
*/
public int getAttack() {
return attack;
} /**
* @param attack the attack to set
*/
public void setAttack(int attack) {
this.attack = attack;
}}
Magicer class( 樓主你確定你的法師沒拼錯??)
package character;public class Magicer extends Role { /**
* The level of magicer
*/
private int level; public Magicer(String name){
super(name);
} /**
* @return the level
*/
public int getLevel() {
return level;
} /**
* @param level the level to set
*/
public void setLevel(int level) {
this.level = level;
} /**
* The total damage that Character due to Opponent
*/
public int attack(){
return 5 * level;
}}
Team class:
package character;import java.util.ArrayList;
import java.util.List;public class Team {
private List<Role> members = new ArrayList<>(6);
public Team(){ } public int attackSum(){
int total = 0;
for (Role member: members){
total += member.attack();
}
return total;
} /**
*
* @param role
*/
public void addMember(Role role){
if (members.size() < 6){
members.add(role);
}
else{
System.out.println("The team already full");
}
}
public List<Role> teamList(){
return members;
}
}
UML Diagram:
package character;public class Role { /**
* The name of the Character
*/
String name; public Role(String name){
this.name = name;
} /**
* The total damage that Character due to Opponent
*/
public int attack(){
return 0;
} /**
* @return the name
*/
public String getName() {
return name;
} /**
* @param name the name to set
*/
public void setName(String name) {
this.name = name;
}}Soldier class:
package character;public class Soldier extends Role { private int attack; public Soldier(String name){
super(name);
} /**
* The total damage that Character due to Opponent
*/
public int attack(){
return 0;
} /**
* @return the attack
*/
public int getAttack() {
return attack;
} /**
* @param attack the attack to set
*/
public void setAttack(int attack) {
this.attack = attack;
}}
Magicer class( 樓主你確定你的法師沒拼錯??)
package character;public class Magicer extends Role { /**
* The level of magicer
*/
private int level; public Magicer(String name){
super(name);
} /**
* @return the level
*/
public int getLevel() {
return level;
} /**
* @param level the level to set
*/
public void setLevel(int level) {
this.level = level;
} /**
* The total damage that Character due to Opponent
*/
public int attack(){
return 5 * level;
}}
Team class:
package character;import java.util.ArrayList;
import java.util.List;public class Team {
private List<Role> members = new ArrayList<>(6);
public Team(){ } public int attackSum(){
int total = 0;
for (Role member: members){
total += member.attack();
}
return total;
} /**
*
* @param role
*/
public void addMember(Role role){
if (members.size() < 6){
members.add(role);
}
else{
System.out.println("The team already full");
}
}
public List<Role> teamList(){
return members;
}
}
UML Diagram:
解决方案 »
- 神乎!struts2文件下载,名称竟然是action名!
- 关于webservice传递参数的问题
- form提交的问题
- JAVA 保存时 Action跳不进去 报类型不匹配
- 关于java中的代理问题!
- struts2一段时间过后无法实例化action
- 菜鸟处学JSP请教!!!!!!!!!!!!!!!!
- jive 中Thread是什么意思啊,到底怎样翻译啊,JiveThread表又是拿来干什么的呢,
- 谁能告诉我,LONG类型怎么转化成DATE类型输出显示啊,困扰我好久的问题了!
- 问一个关于jfreechart时序图创建数据集合的问题
- 咨询一个比特币的事
- 讨论:web窗体,它支持从资源管理器中一次拖进来的多个文件,可能吗?
首先,Role是父类,那么其中的attack()应该是供子类共享的,如果子类还要覆盖Role中的attack()的话,那要这个父类有什么意义?
其次,Role是什么?角色的意思吗?那如果Magicer同时也可以是Soldier,怎么办?