[基础题] 5.(*)按如下要求编写Java应用程序:(1)编写一个用于表示战斗能力的接口Fightable,
来源:互联网 发布:天龙八部3答题器源码 编辑:程序博客网 时间:2024/04/25 10:15
/*5.(*)按如下要求编写Java应用程序:
(1)编写一个用于表示战斗能力的接口Fightable,
该接口包含:整型常量MAX;
方法void win(),用于描述战斗者获胜后的行为;
方法int injure(int x),用于描述战斗者受伤后的行为。
(2)编写一个非抽象的战士类Warrior,实现接口Fightable。
该类中包含两个整型变量:经验值experience和血液值blood。
当战士获胜后经验值会增加,而受伤后血液值会减少x,
并且当战斗者的血液值低于MAX时会输出危险提示。
(3)编写战士类Warrior的子类BloodWarrior,
该类创建的战士在血液值低于MAX/2时才会输出危险提示。
(4)编写主类TestWarrior,对上述接口和类进行测试。
(1)编写一个用于表示战斗能力的接口Fightable,
该接口包含:整型常量MAX;
方法void win(),用于描述战斗者获胜后的行为;
方法int injure(int x),用于描述战斗者受伤后的行为。
(2)编写一个非抽象的战士类Warrior,实现接口Fightable。
该类中包含两个整型变量:经验值experience和血液值blood。
当战士获胜后经验值会增加,而受伤后血液值会减少x,
并且当战斗者的血液值低于MAX时会输出危险提示。
(3)编写战士类Warrior的子类BloodWarrior,
该类创建的战士在血液值低于MAX/2时才会输出危险提示。
(4)编写主类TestWarrior,对上述接口和类进行测试。
* */
//胜利的话 :血液不变,经验+10
//受伤的话 :血液-10;
//如果血液低于30提示危险,等于就提示(死亡)K.0
//输入Pk回合数,输入PK结果,"y代表胜利,n代表受伤"
//拓展功能:当经验值满100时,等级+1,初始化血液100,经验值初始化为0
import java.util.Scanner;public class Test_05 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);BloodWarrior s1 = new BloodWarrior();s1.blood = 100;//初始血液值System.out.print("请输入回合数:");int bout = sc.nextInt();System.out.println("请输入Pk结果 (y胜利/n受伤):");char PK = sc.next().charAt(0);s1.pk(PK, bout);}}interface Fightable {int max = 30;// 危险值void win();// 用于描述战斗者获胜后的行为int injure(int x);// 用于描述战斗者受伤后的行为}class Warrinor implements Fightable {int blood;// 定义血液值int experience;// 定义经验值int grade;public void win() {};public int injure(int x) {return x;}}class BloodWarrior extends Warrinor {public void win() {experience += 10;System.out.println("血液值:" + blood + "/经验值:" + experience+"/等级:"+grade);if(experience == 100){grade += 1;experience=0;blood = 100 ;System.out.println("恭喜!等级提升!"+"等级:"+grade);}}public int injure(int x) {if (blood <= max) {System.out.println("*危险!血液值过低,请及时补血!");}// + "血液值:" + blood + "/经验值:" + experience+"/等级:"+gradeblood -= x;System.out.println("受伤/血液值:" + "-" + x + "\t 剩余血液值:" + blood + "/经验值:" + experience+"/等级:"+grade);//if(grade <= 0 && blood == 0){if (blood == 0) {System.out.println("K.O");// knock outSystem.exit(0);//想直接整个程序的结束用System.exit(0);//}}return blood;}public void pk(char PK, int bout) {for (int i = 1; i <= bout; i++) {if (PK == 'y') {win();}if (PK == 'n') {injure(10);}}}}
阅读全文
0 0
- [基础题] 5.(*)按如下要求编写Java应用程序:(1)编写一个用于表示战斗能力的接口Fightable,
- Java编写一个用于表示战斗能力的接口练习题 含有随机数的比较
- [基础题] 6.(*)按如下要求编写Java程序: (1)编写一个接口:OneToN,只含有一个方法int dispose(int n)
- [基础题]8.(*)按如下要求编写Java程序:(1)定义一个交通工具收费接口Charge
- [基础题] 7.第一种(*)按如下要求编写Java程序:
- [基础题] 7.第二种(*)按如下要求编写Java程序:
- 多态部分作业 1.按要求编写Java程序:(1)编写一个接口:InterfaceA,只含有一个方法int method(int n);
- 要求编写一个简单的人员信息管理程序,具体要求如下:
- 定义一个表示学生信息的类Student,要求如下: (1)类Student的成员变量: sNO 表示学号;sName表示姓名;sSex表示性别;sAge表示年龄;sJava:表示Java课程成绩。
- 编写一个应用程序绘制一个如下的操作菜单并实现功能(定义一个类学生表示学生,有成员变量姓名name和年龄age) ***************************** | 1. 增
- 5.编写一个java程序,该程序有两个类:Tank(用于刻画坦克)和Fight(主类)。 已知坦克类如下:
- 编写一个JFrame窗口,要求如下: 1. 在窗口的NORTH区放置一个JPanel面板。
- 编写一个JFrame窗口,要求如下: 1. 在窗口的NORTH区放置一个JPanel面板。
- 利用Timer控件【Timer(6.4.9)】编写C# Windows应用程序,设计一个如下效果电子时钟。
- JAVA--第十二周任务之1.编写一个应用程序,要求编写一个Panel的子类MyPanel,MyPanel中有一个文本框和一个按钮,要求MyPanel的实例作为其按钮的ActionEvent事件的监视
- java十二周实验.编写一个应用程序,要求编写一个Panel的子类MyPanel,MyPanel中有一个文本框和一个按钮,要求MyPanel的实例作为其按钮的ActionEvent事件的监视器,当单击
- 习题2:编写一个控制台应用程序,要求用户输入5个大写字母,如果用户输入的信息不满足要求,提示帮助信息并要求重新输入。
- 编写一个控制台应用程序,要求用户输入5个大写字母,如果用户输入的信息不满足要求,提示帮助信息并要求重新输入
- 编写一个递归调用函数,输出vector对象的内容
- InnoDB关键特性 Doublewrite
- 单例模式
- adt如何禁止logcat自动滚动到底部
- transform
- [基础题] 5.(*)按如下要求编写Java应用程序:(1)编写一个用于表示战斗能力的接口Fightable,
- docker相关概念记录
- 状态波形图控件
- HDU
- Docker的save和export命令的区别
- js时间格式转换
- Spring Data JPA
- pytorch torchvision.datasets.CocoCaptions on Linux
- Tornado request内容