Java学习笔记(7)

练习

package exercise3;public class FightTest {public static void main(String[] args) {Role r1 = new Role("kobe", 100);Role r2 = new Role("james", 100);while (true) {r1.attack(r2);if (isWin(r1,r2)) break;r2.attack(r1);if (isWin(r2,r1)) break;}}public static boolean isWin(Role r1, Role r2){if (r2.getBlood() == 0) {System.out.println(r1.getName() + "打败了" + r2.getName());return true;}else return false;}
}package exercise3;import java.util.Random;public class Role {private String name;private int blood;public Role() {}public Role(String name, int blood) {this.name = name;this.blood = blood;}/*** 获取** @return name*/public String getName() {return name;}/*** 设置** @param name*/public void setName(String name) {this.name = name;}/*** 获取** @return blood*/public int getBlood() {return blood;}/*** 设置** @param blood*/public void setBlood(int blood) {this.blood = blood;}public void attack(Role name) {Random r = new Random();int hurt = r.nextInt(20) + 1;int remainBlood = name.getBlood() - hurt;remainBlood = remainBlood < 0 ? 0 : remainBlood;name.setBlood(remainBlood);System.out.println(this.name + "给" + name.getName() + "一拳,造成了" + hurt + "伤害,"+ name.getName() + "还剩" + name.getBlood() + "点血。");}
}

%s 的作用

Alt+insert :get/set成员变量快捷键

格斗游戏改进

package exercise3;public class FightTest {public static void main(String[] args) {Role r1 = new Role("kobe", 100, '男');Role r2 = new Role("james", 100, '女');r1.showRoleInfo();r2.showRoleInfo();while (true) {r1.attack(r2);if (isWin(r1, r2)) break;r2.attack(r1);if (isWin(r2, r1)) break;}}public static boolean isWin(Role r1, Role r2) {if (r2.getBlood() == 0) {System.out.println(r1.getName() + "打败了" + r2.getName());return true;} else return false;}
}package exercise3;import java.util.Random;public class Role {private String name;private int blood;private char gender;private String face;String[] boyfaces = {"风流俊雅", "气宇轩昂", "相貌英俊", "五官端正", "相貌平平", "一塌糊涂", "面目狰狞"};String[] girlfaces = {"美奂绝伦", "沉鱼落雁", "婷婷玉立", "身材娇好", "相貌平平", "相貌简陋", "惨不忍睹"};//attack 攻击描述:String[] attacks_desc = {"%s使出了一招【背心钉】,转到对方的身后,一掌向%s背心的灵台穴拍去。","%s使出了一招【游空探爪】,飞起身形自半空中变掌为抓锁向%s。","%s大喝一声,身形下伏,一招【劈雷坠地】,捶向%s双腿。","%s运气于掌,一瞬间掌心变得血红,一式【掌心雷】,推向%s。","%s阴手翻起阳手跟进,一招【没遮拦】,结结实实的捶向%s。","%s上步抢身,招中套招,一招【劈挂连环】,连环攻向%s。"};//injured 受伤描述:String[] injureds_desc = {"结果%s退了半步,毫发无损","结果给%s造成一处瘀伤","结果一击命中,%s痛得弯下腰","结果%s痛苦地闷哼了一声,显然受了点内伤","结果%s摇摇晃晃,一跤摔倒在地","结果%s脸色一下变得惨白,连退了好几步","结果『轰』的一声,%s口中鲜血狂喷而出","结果%s一声惨叫,像滩软泥般塌了下去"};public Role() {}public Role(String name, int blood) {this.name = name;this.blood = blood;}public Role(String name, int blood, char gender) {this.name = name;this.blood = blood;this.gender = gender;setFace(gender);this.face = getFace();}/*** 获取** @return name*/public String getName() {return name;}/*** 设置** @param name*/public void setName(String name) {this.name = name;}/*** 获取** @return blood*/public int getBlood() {return blood;}/*** 设置** @param blood*/public void setBlood(int blood) {this.blood = blood;}public char getGender() {return gender;}public void setGender(char gender) {this.gender = gender;}public String getFace() {return face;}public void setFace(char gender) {Random r = new Random();if (gender == '男') {int index = r.nextInt(boyfaces.length);this.face = boyfaces[index];} else if (gender == '女') {int index = r.nextInt(girlfaces.length);this.face = girlfaces[index];} else {this.face = "惨不忍睹";}}public void showRoleInfo() {System.out.println("姓名:" + getName());System.out.println("血量:" + getBlood());System.out.println("性别:" + getGender());System.out.println("面容:" + getFace());}public void attack(Role role) {Random r = new Random();int hurt = r.nextInt(20) + 1;int remainBlood = role.getBlood() - hurt;remainBlood = remainBlood < 0 ? 0 : remainBlood;role.setBlood(remainBlood);int index = r.nextInt(attacks_desc.length);System.out.printf(attacks_desc[index], this.name, role.getName());System.out.println();if (remainBlood >= 90) {System.out.printf(injureds_desc[0], role.getName());} else if (remainBlood >= 80 && remainBlood < 90) {System.out.printf(injureds_desc[1], role.getName());} else if (remainBlood >= 70 && remainBlood < 80) {System.out.printf(injureds_desc[2], role.getName());} else if (remainBlood >= 60 && remainBlood < 70) {System.out.printf(injureds_desc[3], role.getName());} else if (remainBlood >= 40 && remainBlood < 60) {System.out.printf(injureds_desc[4], role.getName());} else if (remainBlood >= 20 && remainBlood < 40) {System.out.printf(injureds_desc[5], role.getName());} else if (remainBlood >= 10 && remainBlood < 20) {System.out.printf(injureds_desc[6], role.getName());} else {System.out.printf(injureds_desc[7], role.getName());}System.out.println();}}

键盘录入 制表符%t

记得先写出一个标准的Javabean类创建对象(包括属性,空参构造方法,带参构造方法,set/get 成员方法)

注意:数组中如果存在null,则null是不能使用的,如果创建一个对象是null,然后调用这个对象方法,代码就会报错。

package exercise5;import java.util.Scanner;public class StudentTest {public static void main(String[] args) {Student[] studentArr = new Student[3];Student s1 = new Student(1, "xiaoa", 20);Student s2 = new Student(2, "xiaob", 21);Student s3 = new Student(4, "xiaoc", 22);studentArr[0] = s1;studentArr[1] = s2;studentArr[2] = s3;Student s4 = new Student(3, "xiaod", 23);if (contains(studentArr, s4.getId())) {System.out.println("学号已存在");} else {//判断数组存满没有?int count = getCount(studentArr);if (count == studentArr.length) {//存满了studentArr = addStudent(s4, studentArr);showArr(studentArr);} else {//没满studentArr[count] = s4;showArr(studentArr);}}studentArr = delStudent(studentArr);showArr(studentArr);studentArr = findId(studentArr);showArr(studentArr);}public static boolean contains(Student[] studentArr, int newStudentId) {for (Student student : studentArr) {if (student != null && student.getId() == newStudentId) {return true;}}return false;}public static int getCount(Student[] studentArr) {int count = 0;for (Student student : studentArr) {if (student != null) {count++;}}return count;}public static Student[] addStudent(Student newStudent, Student[] studentArr) {Student[] newStudentArr = new Student[studentArr.length + 1];for (int i = 0; i < studentArr.length; i++) {newStudentArr[i] = studentArr[i];}newStudentArr[studentArr.length] = newStudent;return newStudentArr;}public static void showArr(Student[] arr) {for (int i = 0; i < arr.length; i++) {if (arr[i] != null) {System.out.println(arr[i].getId() + ", " + arr[i].getName() + ", " + arr[i].getAge());}}}public static Student[] delStudent(Student[] arr) {Scanner sc = new Scanner(System.in);System.out.println("请输入删除学生的学号:");int delStuId = sc.nextInt();int index = getIndex(arr, delStuId);if (index >= 0) {//存在该学生arr[index] = null;System.out.println("存在该学生");} else {//不存在System.out.println("不存在该学生,删除失败");}return arr;}public static int getIndex(Student[] arr, int delStuId) {for (int i = 0; i < arr.length; i++) {Student stu = arr[i];if (stu != null && stu.getId() == delStuId) {return i;}}return -1;}public static Student[] findId(Student[] arr) {Scanner sc = new Scanner(System.in);System.out.println("输入要查找的学生id:");int findId = sc.nextInt();int index = getIndex(arr, findId);if (index >= 0) {arr[index].setAge(arr[index].getAge() + 1);} else {System.out.println("不存在这个id");}return arr;}
}package exercise5;public class Student {private int id;private String name;private int age;public Student() {}public Student(int id, String name, int age) {this.id = id;this.name = name;this.age = age;}public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public boolean isExist(Student[] arr, int newId) {for (int i = 0; i < arr.length; i++) {if (arr[0].getId() == newId) {return true;}}return false;}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/274966.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

虚幻4 | 制作游戏——学习记录(一)

1. 启动Epic后下载虚幻4&#xff0c;打开虚幻4后新建一个第三人称游戏项目&#xff0c;效果如下&#xff1a; &#xff08;1&#xff09;内容/ThirdPersonBP/Blueprints中的ThirdPersonCharacter&#xff08;左下角人物&#xff09; 这是模板中使用的主要蓝图类&#xff0c;它…

Frostmourne - Elasticsearch源日志告警配置

简介 配置Frostmourne 接入Elasticsearch源进行日志匹配告警&#xff0c;并静默规则&#xff0c;告警消息发送到企业微信&#xff0c;告警信息使用Markdown。 部署安装教程查看&#xff1a; https://songxwn.com/frostmourne_install ELK 安装教程&#xff1a;https://songx…

【Android】 ClassLoader 知识点提炼

1.Java中的 ClassLoader 1.1 、ClassLoader的类型 Java 中的类加载器主要有两种类型&#xff0c;即系统类加载器和自定义类加载器。其中系统类 加载器包括3种&#xff0c;分别是 Bootstrap ClassLoader、Extensions ClassLoader 和 Application ClassLoader。 1.1.1.Bootstra…

从0到1入门C++编程——12 演讲比赛流程管理系统

文章目录 一、创建类并显示菜单二、退出管理系统三、开始演讲比赛四、查看往届记录五、清空比赛记录六、案例源代码 演讲比赛流程管理系统 比赛规则&#xff1a;演讲比赛共有12个人参加&#xff0c;比赛分两轮进行&#xff0c;第一轮为淘汰赛&#xff0c;第二轮为决赛。每名选手…

Java中 final、finally、finalize 有什么区别?

1、典型回答 final、finally、finalize 是 Java 中三个不同的关键字&#xff0c;它们除了长得像之外&#xff0c;其他的&#xff08;作用和含义&#xff09;完全不同。 它们三个的区别就好像&#xff1a;雷、雷锋、雷峰塔之间的区别。&#xff08;是三个完全不同的东西&#…

STM32---通用定时器(一)理论基础

写在前面&#xff1a;在STM32F103中有众多的定时器&#xff0c;其中包括两个基本定时器&#xff0c;基本定时器的内容已经在上节进行了介绍&#xff0c;基本定时器的功能、结构、使用都较为简单。而STM32F1中还含有4个通用定时器&#xff08;TIM2\3\4\5&#xff09;,这些定时器…

【c++】特殊类的设计

&#x1f4bb;文章目录 &#x1f4c4;前言&#x1f33b;特殊类的设计无法被继承的类只能在堆开辟空间的类无法被拷贝的类只能在栈开辟空间的类 &#x1f33a;单例模式饿汉模式懒汉模式 &#x1f4d3;总结 &#x1f4c4;前言 你可听说过只能在堆上创建的类、无法被拷贝的类、甚至…

14双体系Java学习之数组

数组 ★小贴士 数组中保存固定数量的值&#xff0c;声明数组时需要制定数组中元素的类型&#xff0c;数组的长度在创建数组时设定。 保存数据的数据结构有很多&#xff0c;Java的标准函数库中就包含了许多复杂的数据结构&#xff0c;比如map、tree和set&#xff0c;以后会讲解的…

如何做代币分析:以 ARB 币为例

作者&#xff1a;lesleyfootprint.network 编译&#xff1a;mingfootprint.network 数据源&#xff1a;ARB 代币仪表板 &#xff08;仅包括以太坊数据&#xff09; 在加密货币和数字资产领域&#xff0c;代币分析起着至关重要的作用。代币分析指的是深入研究与代币相关的数据…

【考研】高等数学总结

文章目录 第一章 极限 函数 连续1.1 极限存在准则及两个重要极限1.1.1 夹逼定理1.1.1.1 数列夹逼定理1.1.1.2函数夹逼定理 1.1.2 两个重要极限1.1.2.1 极限公式11.1.2.1.1 证明1.1.2.1.2 数列的单调有界收敛准则1.1.2.1.2.1 二项式定理1.1.2.1.2.2 证明 1.1.2.2 极限公式21.1.2…

Linux - 进程信号

1、信号入门 1.1、生活角度的信号 你在网上买了很多件商品&#xff0c;再等待不同商品快递的到来。但即便快递没有到来&#xff0c;你也知道快递来临时&#xff0c; 你该怎么处理快递。也就是你能“识别快递”&#xff1b;当快递员到了你楼下&#xff0c;你也收到快递到来的通…

深圳市优质IDC服务商

深圳市南方联合科技有限公司是一家立足深圳、辐射全国的电信中立数据中心运营商&#xff0c;依托与电信运营商、IT 设备厂商在资源及渠道上的优势&#xff0c;借鉴业界成功运营经验&#xff0c;为用户提供持续、高速、安全的互联网数据中心服务&#xff08;IDC&#xff09;、企…

C#集合和数据结构,随笔记录

C#集合和数据结构 System.Collections命名空间包含接口和类&#xff0c;这些接口和类定义各种对象&#xff08;如列表/链表、位数组、哈希表、队列和堆栈&#xff09;的集合 System.Collections.Generic命名空间&#xff1a; 所有集合都直接或间接基于ICollection接口 列表类集…

Java项目:48 ssm008医院门诊挂号系统+jsp(含文档)

作者主页&#xff1a;舒克日记 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 项目介绍 本选题则旨在通过标签分类管理等方式实现 管理员&#xff1b;个人中心、药房管理、护士管理、医生管理、病人信息管理、科室信息管理、挂号管理、诊断…

案例--某站视频爬取

众所周知&#xff0c;某站的视频是&#xff1a; 由视频和音频分开的。 所以我们进行获取&#xff0c;需要分别获得它的音频和视频数据&#xff0c;然后进行音视频合并。 这么多年了&#xff0c;某站还是老样子&#xff0c;只要加个防盗链就能绕过。&#xff08;防止403&#xf…

基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的交通标志识别系统详解(深度学习模型+UI界面代码+训练数据集)

摘要&#xff1a;本篇博客详细介绍了利用深度学习构建交通标志识别系统的过程&#xff0c;并提供了完整的实现代码。该系统采用了先进的YOLOv8算法&#xff0c;并与YOLOv7、YOLOv6、YOLOv5等早期版本进行了性能评估对比&#xff0c;分析了性能指标如mAP、F1 Score等。文章深入探…

细粒度IP定位参文2(Corr-SLG):A street-level IP geolocation method (2021年)

[2]S. Ding, F. Zhao, and X. Luo, “A street-level IP geolocation method based on delay-distance correlation and multilayered common routers,” Secur. Commun. Netw., vol. 2021, no. 1, pp. 1–10, 2021. 智能设备的地理位置可以帮助提供多媒体内容提供商和5G网络中…

Apache POI 解析和处理Excel

摘要&#xff1a;由于开发需要批量导入Excel中的数据&#xff0c;使用了Apache POI库&#xff0c;记录下使用过程 1. 背景 Java 中操作 Excel 文件的库常用的有Apache POI 和阿里巴巴的 EasyExcel 。Apache POI 是一个功能比较全面的 Java 库&#xff0c;适合处理复杂的 Offi…

【算法设计】实验四回溯算法(附源代码)

这里写目录标题 一、上机目的二、上机内容与要求三、上机步骤四、上机结果1、将课本5.2节算法改为程序&#xff0c;并输入数据及进行测试&#xff1b;2、自学5.4节&#xff0c;并完成符号三角形问题。 一、上机目的 1、通过回溯法的示例程序理解回溯法的基本思想&#xff1b; …

C语言--从零开始的扫雷游戏

C语言--从零开始的扫雷游戏 1. 游戏说明2. 总体代码3. 详细讲解3.1 菜单部分3.2 游戏主体部分3.2.1 总体分析3.2.2 棋盘初始化3.2.3 棋盘展示3.2.4 设置地雷3.2.5 扫雷阶段3.2.6 统计雷个数的代码3.2.7 使用迭代的方式进行展开&#xff1a;3.2.8 扫雷部分主体代码 4. 总结 1. 游…