java战士对打,Java 法师与战士
//父类
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 法师与战士相关推荐
- Java 法师与战士
//父类 public abstract class Role {//抽象类 private String name; public String getName() { return nam ...
- 面向对象之远哥法师和战士组队游戏管理操作系统
/** 笔记0927 *对象数组起始位置可以初始化几个元素 // 1.功能五 判断队名是否重复2.给队起名:3.队伍建队用flag循环判断是否队伍已满: 2.功能六 遍历二维数组子元素的方法 *3.R ...
- java双人对打小游戏
java双人对打小游戏,无注释版,没多余废话直接上效果和源码 一.运行效果 一.英雄类 import java.util.Random;public class Hero {private Strin ...
- java 读取txt,java读取大文件
java 读取txt,java读取大文件 package com.bbcmart.util; import java.io.File; import java.io.RandomAccessFile; ...
- JAVA基础(JAVA 执行环境) 第一天
JAVA程序有3中执行环境. (1)能够单独运行的程序,称为Java Application(Java应用程序). (2)在Internet浏览器中运行的程序,称为 Java Applet(JAVA小 ...
- java.utilDate和java.sql.Date
java.utilDate和java.sql.Date由广州疯狂软件教育java培训分享: java程序中的时间类型有java.util.Date和java.sql.Date两种.两者之间的关系和转化 ...
- java 终极超类,Java问答:终极父类(3),java问答
Java问答:终极父类(3),java问答Java问答:终极父类(上) Java问答:终极父类(下) Java问答:终极父类(2)-上篇 Java问答:终极父类(2)-下篇 在之前关于 Object ...
- java.lang.OutOfMemoryError: Java heap space错误及...
为什么80%的码农都做不了架构师?>>> 以下是从网上找到的关于堆空间溢出的错误解决办法: java.lang.OutOfMemoryError: Java heap spac ...
- 浅谈Java SE、Java EE、Java ME三者的区别
1. Java SE(Java Platform,Standard Edition).Java SE 以前称为 J2SE.它允许开发和部署在桌面.服务器.嵌入式环境和实时环境中使用的 Java 应用程 ...
最新文章
- Windows内核HAL相关学习
- MAT之SA:利用SA算法解决TSP(数据是14个虚拟城市的横纵坐标)问题
- [转]Oracle 表空间与数据文件
- ios两张图片的合并
- JavaWeb学习笔记-目录(待完成)
- 气象气候应用在Intel最新处理器Icelake上的性能测评
- android /data/system/dropbox,Android导出dropbox日志
- 【LeetCode】剑指 Offer 27. 二叉树的镜像
- Linux常用最基础命令总结
- vue-router 懒加载优化
- python画羊_羊车门作业 Python版
- 网页滚动条向下拉动奇慢的原因
- cxonev4验证用户_欧姆龙plc编程软件下载 omron plc编程软件(CX-ONE) v4.31 中文免费版(附序列号+安装教程) 下载-脚本之家...
- 英特尔核显驱动hd630_技术力井喷!深度解析英特尔11代酷睿处理器
- 一张图秒懂Android事件分发机制
- matlab试算求解二元二次方程,matlab 求一个二元二次方程组的解
- 计算机硬盘最小容量是多少,通常计算机的存储容量是多少?
- Wifi热点java_Wifi热点实现文件传输
- 【技巧】Unity 获取Android设备系统语言
- Win10环境下caffe安装与编译