文字版格斗游戏
1.新建Javabean类
package com.chris.demo.test1;
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;
}
public String getName(){
return name;
}
public void setName(String name) {
this.name = name;
}
public int getBlood(){
return blood;
}
public void setBlood(int blood){
this.blood = blood;
}
//方法体的定义:定义一个方法用于攻击别人
//思考:如何攻击?谁攻击谁?
//role r1= new role();
//role r2 = new role();
//r1.攻击(r2); 方法的调用者去攻击参数
public void attack(Role role){
Random r = new Random();
int hurt = r.nextInt(20)+1;
//剩余血量
int remainBlood = role.getBlood() - hurt;
//对剩余血量做一个验证,如果为负数,就修改为0
remainBlood = remainBlood < 0 ? 0:remainBlood;
//修改被攻击者的血量
role.setBlood(remainBlood);
//this表述方法的调用者
System.out.println(this.getName()+"举起了拳头,打了"+this.getName()+"一下。造成了"+hurt+"点伤害。"
+this.getName()+"还剩"+remainBlood+"点血量。");
}
}
测试主类,调用攻击函数
package com.chris.demo.test1;
public class GameTest {
public static void main(String[] args) {
Role r1 = new Role("乔峰",100);
Role r2 = new Role("鸠摩智",100);
while(true){
//r1攻击r2
r1.attack(r2);
if(r2.getBlood() == 0){
System.out.println(r1.getName()+"K.O了"+r2.getName());
break;
}
//r2攻击r1
r2.attack(r1);
if(r1.getBlood() == 0){
System.out.println(r2.getName()+"K.O了"+r2.getName());
break;
}
}
}
}
数组学习 String[] S = {"DSF","SADA"};
索引相关知识点
Java中的索引知识点(通俗版)
一、什么是索引?
索引就像快递柜的编号,能帮你快速找到包裹。在Java中,索引是帮助程序快速定位数据的工具。比如:
- 数组索引:快递柜的格子号,直接告诉你去哪个格子拿东西
- 数据库索引:像书的目录,能快速翻到想看的章节
- 集合索引:类似超市储物柜的条码,扫码直接开对应的柜门
二、三种常见索引类型
-
数组索引
- 原理:数组像一排连续的小格子,索引就是格子的编号(从0开始)
- 示例:
String[] fruits = {"苹果", "香蕉", "橘子"}; System.out.println(fruits[1]); // 输出"香蕉" - 注意:别超范围!比如3个元素的数组,最大索引只能是2
-
集合索引(如ArrayList)
- 原理:底层还是数组,索引用法和数组类似
- 特点:
- 增删元素时,后面的元素会“集体搬家”(效率较低)
- 适合“查得多,改得少”的场景
- 示例:
List<String> list = new ArrayList<>(); list.add("张三"); // 索引0 list.add("李四"); // 索引1
-
数据库索引
- 作用:让数据库查数据像用百度搜索一样快
- 常见类型:
类型 作用 类比 主键索引 身份证号,绝对唯一 快递单号 普通索引 普通编号,允许重复 快递柜的临时取件码 联合索引 组合多个条件(如姓名+手机号) 图书馆的多条件检索机 - 使用技巧:
- 频繁查询的字段才加索引(比如用户表的手机号)
- 别给总在变的字段加索引(比如实时更新的库存数量)
三、索引的优缺点
| 优点 | 缺点 |
|---|---|
| 查找速度提升10倍以上 | 新增/删除数据时速度变慢 |
| 排序和分组操作更快(如ORDER BY) | 占用额外存储空间(像多建了一个目录本) |
| 能保证数据唯一性(唯一索引) | 维护索引需要计算资源 |
四、使用注意事项
-
别滥用索引
- 就像书包里放太多分类袋,反而找东西更慢
- 建议:一张表最多5-6个索引
-
注意顺序
- 联合索引的顺序影响效率,比如
(城市, 年龄)的索引:- ✅ 能快速查“北京+30岁的人”
- ❌ 查“所有30岁的人”时用不上这个索引
- 联合索引的顺序影响效率,比如
-
特殊场景
- 全文搜索(如文章内容搜索)用Elasticsearch索引,原理像“关键词→页码”的超级目录
一句话总结
索引是数据的“快捷方式”,用空间换时间。就像查字典先看拼音表,而不是一页页翻
记住口诀:“高频查询加索引,增删频繁要谨慎”
统一数据类型:确保gender在成员变量、方法参数、getter/setter中保持同类型