//父类

public abstract class Role {//抽象类

private String name;

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public Role(){

}

public abstract int attack();//父类的抽象方法

}

//子类

//法师

public class Magicer extends Role {

private int lv;

public int getLv() {

return lv;

}

public Magicer(String name,int lv){

super.setName(name);//将传递进来的参数赋值给父类的name

this.lv=lv;

}

public Magicer(){

}

public void setLv(int lv) {

this.lv = lv;

}

public int attack(){

return  getLv()*5;//计算法师的伤害

}

}

//战士

public class Soldier extends Role {

private int hurt;

public int getHurt() {

return hurt;

}

public void setHurt(int hurt) {

this.hurt = hurt;

}

public Soldier(){

}

public Soldier(String name,int hurt){

super.setName(name);//将传递进来的name参数赋值给父类的name中

this.hurt=hurt;

}

public int attack(){//计算战士的伤害

return getHurt();

}

}

//team类

public class Team {

Role [] r=new Role [6];//创建Role 类型的数组对象

int i=0;

int sum=0;

public void addMember(Role role ){

if(i<6){ //超过六个则不再添加

r[i]=role;//将参数的值赋值给第i+1个数组。

i++;

}

else{

System.out.println("组队人数已达上限。");

}

}

public int attackSum(){

for(int j=0;j

sum+=r[j].attack();//计算伤害的总和。

}

return sum;

}

}

//测试类

import java.util.Scanner;

public class Test {

//多态。

Role rm=new Magicer();

Role rs=new Soldier();

Magicer m=new Magicer();

Soldier s=new Soldier();

Team t=new Team();

Scanner sc=new Scanner(System.in);

boolean a=true;

public static void main(String[] args) {

Test t1=new Test();

t1.add();//调用创建角色的方法

}

public void add(){//创建角色的方法

do{

System.out.println("请输入你要创建的角色:战士or法师");

String str=sc.next();

if(str.equals("法师")){//创建法师的语句

System.out.println("请创建法师的名字:");

String name1=sc.next();

rm.setName(name1);//将name赋值给法师类中的名字

System.out.println("法师的等级:");

int lv=sc.nextInt();

m.setLv(lv);//将lv赋值给法师类中的等级

System.out.println("成功创建"+m.getLv()+"级的法师"+rm.getName()+"\n其伤害值为:"+m.attack());

System.out.println("是否继续创建:");

String str1=sc.next();

if(str1.equals("是")){

a=true;

}else{

a=false;

}

}else if(str.equals("战士")){//创建战士的语句

System.out.println("请创建战士的名字及其攻击力:");

String  name2=sc.next();

int  hurt=sc.nextInt();

rs.setName(name2);

s.setHurt(hurt);

System.out.println("成功创建战士"+rs.getName()+"\n其伤害值为:"+s.attack());

System.out.println("是否继续创建:");

String str1=sc.next();

if(str1.equals("是")){

a=true;

}else{

a=false;

}

}

else{

System.out.println("输入有误请重新输入");

}

}while (a);

System.out.println("组队可以升级更快");

do{//循环语句来添加队友

System.out.println("是否开启组队功能继续添加名队友?");

String add=sc.next();

if(add.equals("是")){

System.out.println("请输入你要组队人物的职业:");

String type=sc.next();

if(type.equals("法师")){

System.out.println("请输入该法师的姓名及等级:");

String name=sc.next();

int lv=sc.nextInt();

Magicer m1=new Magicer(name,lv); //将名字和等级赋值给Magicer类中带有参数name和lv的的方法

t.addMember(m1);

t.attackSum();

}

else{

System.out.println("请输入该战士的姓名和攻击力:");

String name =sc.next();

int hurt=sc.nextInt();

Soldier s1=new Soldier(name,hurt);//同法师一样

t.addMember(s1);

t.attackSum();

}}

else{

System.out.println("该队伍的总伤害为:"+t.attackSum())    ;//输出伤害的总和

System.out.println("适当放松,请勿沉迷游戏");

break;

}}while(true);

}

}

java战士对打,Java 法师与战士相关推荐

  1. Java 法师与战士

    //父类 public abstract class Role {//抽象类 private String name; public String getName() {     return nam ...

  2. 面向对象之远哥法师和战士组队游戏管理操作系统

    /** 笔记0927 *对象数组起始位置可以初始化几个元素 // 1.功能五 判断队名是否重复2.给队起名:3.队伍建队用flag循环判断是否队伍已满: 2.功能六 遍历二维数组子元素的方法 *3.R ...

  3. java双人对打小游戏

    java双人对打小游戏,无注释版,没多余废话直接上效果和源码 一.运行效果 一.英雄类 import java.util.Random;public class Hero {private Strin ...

  4. java 读取txt,java读取大文件

    java 读取txt,java读取大文件 package com.bbcmart.util; import java.io.File; import java.io.RandomAccessFile; ...

  5. JAVA基础(JAVA 执行环境) 第一天

    JAVA程序有3中执行环境. (1)能够单独运行的程序,称为Java Application(Java应用程序). (2)在Internet浏览器中运行的程序,称为 Java Applet(JAVA小 ...

  6. java.utilDate和java.sql.Date

    java.utilDate和java.sql.Date由广州疯狂软件教育java培训分享: java程序中的时间类型有java.util.Date和java.sql.Date两种.两者之间的关系和转化 ...

  7. java 终极超类,Java问答:终极父类(3),java问答

    Java问答:终极父类(3),java问答Java问答:终极父类(上) Java问答:终极父类(下) Java问答:终极父类(2)-上篇 Java问答:终极父类(2)-下篇 在之前关于 Object ...

  8. java.lang.OutOfMemoryError: Java heap space错误及...

    为什么80%的码农都做不了架构师?>>>    以下是从网上找到的关于堆空间溢出的错误解决办法: java.lang.OutOfMemoryError: Java heap spac ...

  9. 浅谈Java SE、Java EE、Java ME三者的区别

    1. Java SE(Java Platform,Standard Edition).Java SE 以前称为 J2SE.它允许开发和部署在桌面.服务器.嵌入式环境和实时环境中使用的 Java 应用程 ...

最新文章

  1. Windows内核HAL相关学习
  2. MAT之SA:利用SA算法解决TSP(数据是14个虚拟城市的横纵坐标)问题
  3. [转]Oracle 表空间与数据文件
  4. ios两张图片的合并
  5. JavaWeb学习笔记-目录(待完成)
  6. 气象气候应用在Intel最新处理器Icelake上的性能测评
  7. android /data/system/dropbox,Android导出dropbox日志
  8. 【LeetCode】剑指 Offer 27. 二叉树的镜像
  9. Linux常用最基础命令总结
  10. vue-router 懒加载优化
  11. python画羊_羊车门作业 Python版
  12. 网页滚动条向下拉动奇慢的原因
  13. cxonev4验证用户_欧姆龙plc编程软件下载 omron plc编程软件(CX-ONE) v4.31 中文免费版(附序列号+安装教程) 下载-脚本之家...
  14. 英特尔核显驱动hd630_技术力井喷!深度解析英特尔11代酷睿处理器
  15. 一张图秒懂Android事件分发机制
  16. matlab试算求解二元二次方程,matlab 求一个二元二次方程组的解
  17. 计算机硬盘最小容量是多少,通常计算机的存储容量是多少?
  18. Wifi热点java_Wifi热点实现文件传输
  19. 【技巧】Unity 获取Android设备系统语言
  20. Win10环境下caffe安装与编译

热门文章

  1. linux 如何重启crontab,Linux crontab用法、启动关闭重启操作
  2. java switch finally_讲解Java编程中finally语句的基本使用方法
  3. 使用libqrencode库制作二维码电子名片--IOS版
  4. 端午乐一乐:搞笑视频集锦
  5. 货车运输--kruscal重构树板子
  6. q85 芯片服务器,Haswell的左臂右膀:8系列芯片组详尽解读
  7. 世界上最好的双马尾写的博客
  8. acwing第72场周赛题解
  9. 拷贝构造函数与赋值重载
  10. SSH 公钥私钥 详细解释