Java面向对象综合案例(一)

188 阅读17分钟

目录

  • 文字格斗游戏
  • 数组练习一
  • 数组练习二
  • 数组练习三
  • 数组练习四
  • 数组练习五

文字格斗游戏

需求:每个游戏角色的姓名,血量都不相同,在选定人物的时候(new对象的时候),这些信息就应该被确定下来

第一步:编写角色对象属性

// 1.定义人物姓名属性
private String name;
// 定义人物血量属性
private int boold;
// 定义人物性别属性
private char gender;
// 定义人物长相属性
private String face;
// 定义人物长相随机数组
String[] boyface = {"风韵犹存","风流俊雅","气宇轩昂","相貌英俊","相貌平平"};
String[] girface = {"美姿绝伦","沉鱼落雁","亭亭玉立","身材娇好","相貌平平"};
// 定义攻击描述
String[] attacks_desc = {
    "%s使出了一招[背心顶],转到对手的身后,一掌向%s背心的灵台穴拍去。",
    "%s使出了一招[游空探爪],飞起身形自半空中变掌为抓锁向%s。",
    "%s大喝一声,身形下俯,一招[霹雷坠地],锤向%s双腿。",
    "%s运气于掌,一瞬间掌心变得血红,一式[掌心雷],推向%s",
    "%s上步抢身,招中套招,一招[霹挂连环],连环攻向%s。",
};
// 定义受伤描述
String[] injureds_desc = {
        "结果%s退了半步,毫发无伤。",
        "结果给%s造成了一处瘀伤。",
        "结果一击命中,%s痛的弯下腰。",
        "结果%s痛苦的闷哼了一声,显然受了点内伤。",
        "结果%s摇摇晃晃,一跤摔倒在地上。",
        "结果%s脸色一下变得苍白,连退了好几步。",
        "结果[轰]的一声,%s口中鲜血狂喷面出。",
        "结果%s一声惨叫,像滩软泥般的塌了下去。",
};

第二步:构造带全部参数方法

// 1.2 创建带全部参数构造方法
public FightInfo(String name, int boold, char gender) {
    this.name = name;
    this.boold = boold;
    this.gender = gender;
    // 随机长相
    setFace(gender);
}

第三步:编写人物长相的随机方法

// 1.3 编写face的set方法
public void setFace(char gender) {
    // 1.4 随机长相
    Random r = new Random();
    if(gender == '男'){
        // 从男长相数组里面随机获取索引
        int index = r.nextInt(boyface.length);
        // 将这个数组里面的随机索引赋值给this.face。
        this.face = boyface[index];
    }else if(gender == '女'){
        // 从女长相数组里面随机获取索引
        int index = r.nextInt(girface.length);
        // 将这个数组里面的随机索引赋值给this.face。
        this.face = girface[index];
    }else{
        this.face = "惨不忍睹";
    }
}

第四步:定义攻击别人的方法

// 2.1 随机生成输出一个攻击方式
Random r = new Random();
// 定义index用于获取数组的随机索引
int index = r.nextInt(attacks_desc.length);
// 将数组的随机索引里面的值赋值给GongFu
String GongFu = attacks_desc[index];
System.out.printf(GongFu,this.getName(),fightInfo.getName());
System.out.println();

第五步:生成随机伤害

// 2.2 生成随机数计算造成的伤害 1-20随机
int hurt = r.nextInt(20) + 1;

第六步:定义变量用来存放被攻击后剩余的血量

// 2.3 定义变量remainBoold用来修改挨揍人的血量
int remainBoold = fightInfo.getBoold() - hurt;

第七步:对剩余血量做一个负数判断

// 2.4 对剩余血量做一个验证,如果为负数的时候就修改为0.
remainBoold = remainBoold < 0 ? 0 : remainBoold;

第八步:修改挨揍人和血量

// 2.5 修改一下挨揍的人和血量。
fightInfo.setBoold(remainBoold);

第九步:生成受伤描述

// 对剩余血量进行判断。
if(remainBoold > 90){
    // 输出信息为:数组的索引对应的描述和挨揍的那个人
    System.out.printf(injureds_desc[0],fightInfo.getName());
}else if(remainBoold >= 80 && remainBoold <= 90){
    System.out.printf(injureds_desc[1],fightInfo.getName());
}else if(remainBoold >= 70 && remainBoold <= 80){
    System.out.printf(injureds_desc[2],fightInfo.getName());
}else if(remainBoold >= 60 && remainBoold <= 70){
    System.out.printf(injureds_desc[3],fightInfo.getName());
}else if(remainBoold >= 40 && remainBoold <= 60){
    System.out.printf(injureds_desc[4],fightInfo.getName());
}else if(remainBoold >= 20 && remainBoold <= 40){
    System.out.printf(injureds_desc[5],fightInfo.getName());
}else if(remainBoold >= 10 && remainBoold <= 20){
    System.out.printf(injureds_desc[6],fightInfo.getName());
}else{
    System.out.printf(injureds_desc[7],fightInfo.getName());
}

第十步:创建两个角色对象

// 3.创建第一个角色
FightInfo r1 = new FightInfo("后裔",100,'男');
// 创建第二个角色
FightInfo r2 = new FightInfo("艾琳",100,'女');

第十一步:循环开始格斗

// 4.1 开始格斗,回合制游戏用while来循环
while (true){
    // r1开始攻击r2
    r1.attack(r2);
    System.out.println();
    // 判断r2的剩余血量 如果为0就退出
    if(r2.getBoold() == 0){
        System.out.println(r1.getName() + "K.O了" + r2.getName());
        break;
    }

    // r2开始攻击r1
    r2.attack(r1);
    System.out.println();
    // 判断r2的剩余血量 如果为0就退出
    if(r1.getBoold() == 0){
        System.out.println(r2.getName() + " K.O了 " + r1.getName());
        break;
    }
}

我们来运行看一下效果吧:

image.png

数组练习一

需求:定义数组存储3个商品对象。 商品的属性:商品的id,名字,价格,库存。 创建三个商品对象,并把商品对象存入到数组当中。

第一步:定义商品属性和编写JavaBean

// 定义商品属性
private String id;
private String name;
private double price;
private int count;

第二步:创建商品对象数组

// 1. 创建一个商品数组
GoodsInfo[] arr = new GoodsInfo[3];

第三步:创建三个商品对象

GoodsInfo s1 = new GoodsInfo("1","华为p40",5999.9,100);
GoodsInfo s2 = new GoodsInfo("2","华为p50",6999.9,100);
GoodsInfo s3 = new GoodsInfo("3","华为p60",7999.9,100);

第四步:把商品对象添加进数组里

// 3.把商品添加到数组里面。
// 表示把第一个商品的对象放到0索引上。
arr[0] = s1;
// 表示把第二个商品的对象放到1索引上。
arr[1] = s2;
// 表示把第三个商品的对象放到2索引上。
arr[2] = s3;

第五步:遍历数组

for (int i = 0; i < arr.length; i++) {
    GoodsInfo goods = arr[i];
    System.out.println("商品id:" + goods.getId() + " 商品名称:" + goods.getName() + " 商品价格:" + goods.getPrice() + " 商品库存:" + goods.getCount());
}

我们来运行看一下吧:

image.png

完整代码: 测试类

public static void main(String[] args) {
    // 1. 创建一个商品数组
    GoodsInfo[] arr = new GoodsInfo[3];

    // 2. 创建三个商品对象
    GoodsInfo s1 = new GoodsInfo("1","华为p40",5999.9,100);
    GoodsInfo s2 = new GoodsInfo("2","华为p50",6999.9,100);
    GoodsInfo s3 = new GoodsInfo("3","华为p60",7999.9,100);

    // 3.把商品添加到数组里面。
    // 表示把第一个商品的对象放到0索引上。
    arr[0] = s1;
    // 表示把第二个商品的对象放到1索引上。
    arr[1] = s2;
    // 表示把第三个商品的对象放到2索引上。
    arr[2] = s3;

    for (int i = 0; i < arr.length; i++) {
        GoodsInfo goods = arr[i];
        System.out.println("商品id:" + goods.getId() + " 商品名称:" + goods.getName() + " 商品价格:" + goods.getPrice() + " 商品库存:" + goods.getCount());
    }
}

数组练习二

需求:定义数组存储3部汽车对象。汽车的属性:品牌,价格,颜色。

创建三个汽车对象,数据通过键盘录入而来,并把数据存储到数组当中

第一步:定义汽车对象属性

private String brand; // 品牌
private double price; // 价格
private String color; // 颜色

第二步:创建汽车的数组

// 1. 创建数组用来存储3个汽车对象
CarInfo[] arr = new CarInfo[3];

第三步:键盘循环录入三个汽车信息

// 2.创建汽车对象,数据类源于键盘录入。
for (int i = 0; i < arr.length; i++) {
    // 2.1 创建汽车的对象
    CarInfo car = new CarInfo();
    // 录入汽车品牌
    System.out.println("请输入第" + (i + 1) +"个汽车的品牌:");
    String brand = sc.next();
    car.setBrand(brand);
    // 录入汽车价格
    System.out.println("请输入第" + (i + 1) +"个汽车的价格:");
    double price = sc.nextDouble();
    car.setPrice(price);
    // 录入汽车颜色
    System.out.println("请输入第" + (i + 1) +"个汽车的颜色:");
    String color = sc.next();
    car.setColor(color);

    // 2.2 把汽车对象添加到数组当中。
    arr[i] = car;
}

第四步:遍历数组

for (int i = 0; i < arr.length; i++) {
    CarInfo car = arr[i];
    System.out.println("汽车品牌:" + car.getBrand() + " 汽车价格:" +  car.getPrice() + " 汽车颜色:" + car.getColor());
}

我们来运行看一下吧:

image.png

数组练习三

需求:定义数组存储3部手机对象,手机的属性:品牌,价格,颜色。

要求:计算出三部手机的平均价格

第一步:定义手机对象属性

private String brand; // 品牌
private double price; // 价格
private String color; // 颜色

第二步:创建手机对象的数组

// 1. 创建数组用来存储3个手机对象
PhoneInfo[] arr = new PhoneInfo[3];

第三步:通过键盘录入手机对象信息

// 2.创建手机对象,数据类源于键盘录入。
for (int i = 0; i < arr.length; i++) {
    // 2.1 创建手机的对象
    PhoneInfo Phone = new PhoneInfo();
    // 录入手机品牌
    System.out.println("请输入第" + (i + 1) +"个手机的品牌:");
    String brand = sc.next();
    Phone.setBrand(brand);
    // 录入手机价格
    System.out.println("请输入第" + (i + 1) +"个手机的价格:");
    double price = sc.nextDouble();
    Phone.setPrice(price);
    // 录入手机颜色
    System.out.println("请输入第" + (i + 1) +"个手机的颜色:");
    String color = sc.next();
    Phone.setColor(color);
    // 2.2 把汽车对象添加到数组当中。
    arr[i] = Phone;
}

第四步:求出手机的总价格

// 3.遍历数组先求出手机的价格总和
int sum = 0,avg = 0;
for (int i = 0; i < arr.length; i++) {
    PhoneInfo Phone = arr[i];
    // 总价格=数组中每个手机的价格
    sum += Phone.getPrice();
    System.out.println("手机品牌:" + Phone.getBrand() + " 手机价格:" +  Phone.getPrice() + " 手机颜色:" + Phone.getColor());
}

第五步:求出平均价格

// 4.求平均值 平均价格=总价格除以数组的长度
avg = sum / arr.length;
System.out.println("手机总价:" + sum + "\n" + "手机平均:" + avg);

我们来运行看一下:

image.png

数组练习四

需求:定义数组存储4个女朋友的对象。并把他们的信息打印出来 女朋友属性:姓名,年龄,性别,爱好。

要求1:计算出四个女朋友的平均年龄。

要求2:统计年龄比平均值低的女朋友有几个?

第一步:定义女朋友对象属性

private String name; // 姓名
private int age;     // 年龄
private char sex;    // 性别
private String hobby;// 爱好

第二步:创建数组

GirlfriendInfo[] arr = new GirlfriendInfo[4];

第三步:创建女朋友对象

// 2.创建女朋友对象
GirlfriendInfo gir1 = new GirlfriendInfo("小诗诗", 19, '女', "玩游戏");
GirlfriendInfo gir2 = new GirlfriendInfo("小婷婷", 20, '女', "追剧");
GirlfriendInfo gir3 = new GirlfriendInfo("小慧慧", 21, '女', "逛街");
GirlfriendInfo gir4 = new GirlfriendInfo("小莉莉", 22, '女', "学习");

第四步:把对象装进数组里面

// 3.把女朋友对象存放进数组里面
arr[0] = gir1;
arr[1] = gir2;
arr[2] = gir3;
arr[3] = gir4;

第五步:循环求出年龄

// 4.求年龄总和
int sum = 0, avg = 0;
for (int i = 0; i < arr.length; i++) {
    // 总和 = 遍历数组里面每一个对象通过get获取到年龄相加累和
    sum += arr[i].getAge();
}

第六步:求出平均年龄

// 5.求平均年龄:平均年龄=年龄总和/数组里面的长度
avg = sum / arr.length;

第七步:统计比平均年龄小的有几个

// 6.统计年龄比平均年龄小的有几个
// 定义一个count变量用来统计比平均年龄低的个数
int count = 0;
for (int i = 0; i < arr.length; i++) {
    // 通过数组下标.get方法获取到数组里面每一个对象的年龄进行判断。
    if (arr[i].getAge() < avg) {
        // 如果比平均年龄低的话count就+1
        count++;
    }
}

第八步:输出全部信息

// 7.输出全部信息
for (int i = 0; i < arr.length; i++) {
    System.out.println("第" + (i + 1) + "个女朋友姓名:" + arr[i].getName() + " 年龄:" + arr[i].getAge() + " 性别:" + arr[i].getSex() + " 爱好:" + arr[i].getHobby());
}
System.out.println("平均年龄:" + avg + "\n" + "比平均年龄低的有" + count + "个");

我们来运行看一下吧:

image.png

数组练习五

  • 需求:定义一个学生数组,里面存储1-3名学生对象作为初始数据,学生对象的学号不同,姓名各不相同

    学生属性:学号,姓名,年龄。

    要求1:再次添加一个学生,并在添加的时候进行学号的唯一性判断。

    要求2:添加完毕后,遍历出所有学生的信息。

    要求3:通过id删除学生信息(如果存在,就删除,如果不存在,则提示删除失败)

    要求4:删除完毕后,遍历所有学生的信息。

    要求5:查询数组id为:2的学生,如果存在,则将他的年龄+1岁。

第一步:定义学生对象属性

private int id;         // 学生id
private String name;    //学生姓名
private int age;        // 学生年龄

第二步:创建学生数组

// 1. 定义学生数组  数组长度等于初始3个数据+需要添加学生的个数
StudentInfo[] arr = new StudentInfo[3];

第三步:添加3名学生作为初始值

// 1.1 添加3名学生为初始数据并添加到数组里面
arr[0] = new StudentInfo(1,"张三",17);
arr[1] = new StudentInfo(2,"李四",18);
arr[2]= new StudentInfo(3,"王五",19);

第四步:再次添加一个学生,并在添加的时候进行学号的唯一性判断。

  • 分析:添加学生:唯一性判断:

    1.1 学号已存在---不用添加。

    1.2 学号不存在--- 就可以把学生对象直接添加进数组.

    1.3 数组已经满了---只能创建一个新的数组,新的数组的长度 = 老数组 + 1;

    1,4 数组没有满 --- 直接添加。

4.1:添加一名学生

StudentInfo stu = new StudentInfo(4,"赵六",20);

4.2:定义一个方法用来判断添加学生的id存不存在

// 依次获取到数组里面的每一个学生对象
for (int i = 0; i < arr.length; i++) {
    StudentInfo stu = arr[i];
   if(stu != null){
       // 获取数组中学生对象的id
       int sid = stu.getId();
       // 遍历数组里面的每一位学生的id比较
       if(sid == id){
           // 如果存在就返回true
           return true;
       }
   }
}
// 当循环结束后还没有找到就表示id不存在
return false;

4.3:判断学号是否存在

// 2.1 判断学号是否存在
    boolean flag = Stuid(arr,stu.getId());
    if(flag){
        // 已经存在
        System.out.println("当前id已经存在,请重新输入!");
    }else{
       // 不存在就判断当前数组长度满没满
    }

4.4:定义一个方法用来判断当前学生数组中已经存了多少个

// 定义一个计数器用来统计数组有多少个元素
int count = 0;
for (int i = 0; i < arr.length; i++) {
    if(arr[i] != null){
        count++;
    }
}
// 当循环结束count的个数就是数组当中一共有几个元素
return count;

4.5:判断数组中是否存满

// 不存在就判断当前数组长度满没满
            // 2.2 判断数组中是否存满
            int count = Stucount(arr);
            if(count == arr.length){
                // 已经存满
            }else{
                // 没有存满
                arr[count] = stu;
            }

4.6:如果数组满了就创建一个新的数组,长度=老数组的长度+1,然后把老数组的元素拷贝到新数组当中

// 创建新数组,长度=老数组的长度+1
StudentInfo[] newArr = new StudentInfo[arr.length + 1];
// 循环遍历得到老数组中的每一个元素
for (int i = 0; i < arr.length; i++) {
    // 把老数组中的元素添加到新的数组中。
    newArr[i] = arr[i];
}
// 把新数组返回
return newArr;

4.7:创建新元素并将老数组移到新数组

// 已经存满
// 2.3 调用创建新数组方法创建新数组
StudentInfo[] newArr = Stuarr(arr);
// 把新元素添加进去
newArr[count] = stu;

我们运行看一下:

image.png

到这里就把赵六给添加进来啦!

第五步:通过id删除学生信息

5.1:定义一个方法用来拿到id的索引

for (int i = 0; i < arr.length; i++) {
    //依次得到每一个学生对象
    StudentInfo stu = arr[i];
    // 对Stu进行一个非空判断
    if(stu != null){
        int sid = stu.getId();
        if(sid == id){
            return i;
        }
    }
}
// 当循环结束之后,还没有找到就表示不存在
return -1;

5.2:判断id存不存在

int index = Stuindex(arr,3);
if(index >= 0){
    // 如果存在,就删除
    arr[index] = null;

    // 要求4:删除完毕后,遍历所有学生的信息。
    // 调用StuPrint方法遍历数组学生信息
    StuPrint(arr);
}else{
    // 如果不存在,就提示删除失败
    System.out.println("当前id不存在,删除失败!");
}

image.png

到这里我们就成功把id为3的学生给删除掉啦。

第六步:删除完毕后,遍历所有学生的信息。

// 调用StuPrint方法遍历数组学生信息
StuPrint(arr);

第七步:查询数组id为:2的学生,如果存在,则将他的年龄+1岁。

7.1:调用Stuindex方法来拿到id索引

// 5.1 调用Stuindex方法来拿到id索引
int index1 = Stuindex(arr,2);

7.2:判断索引存不存在

 if(index1 >= 0){
     // 存在  将他的年龄加1
     StudentInfo stu1 = arr[index1];
     // 把原来的年龄拿出来
     int newAge = stu1.getAge() + 1;
     // 把加1之后的年龄塞回去
     stu1.setAge(newAge);
     // 遍历数组
    StuPrint(arr);
}else{
    // 不存在 则提示
    System.out.println("当前id不存在,修改失败!");
}

到这里我们就全部编写完成啦,把id为2的学生年龄+1,我们来运行看一下:

image.png

完整代码:

package demo9;

public class Student {
    public static void main(String[] args) {
        // 数组练习五
        /*需求:定义一个学生数组,里面存储1-3名学生对象作为初始数据,学生对象的学号不同,姓名各不相同
        学生属性:学号,姓名,年龄。
        要求1:再次添加一个学生,并在添加的时候进行学号的唯一性判断。
        要求2:添加完毕后,遍历出所有学生的信息。
        要求3:通过id删除学生信息(如果存在,就删除,如果不存在,则提示删除失败)
        要求4:删除完毕后,遍历所有学生的信息。
        要求5:查询数组id为:2的学生,如果存在,则将他的年龄+1岁。
        */

        // 1. 定义学生数组  数组长度等于初始3个数据+需要添加学生的个数
        StudentInfo[] arr = new StudentInfo[3];

        // 1.1 添加3名学生为初始数据并添加到数组里面
        arr[0] = new StudentInfo(1,"张三",17);
        arr[1] = new StudentInfo(2,"李四",18);
        arr[2]= new StudentInfo(3,"王五",19);


        // 2. 要求1:再次添加一个学生,并在添加的时候进行学号的唯一性判断。
        StudentInfo stu = new StudentInfo(4,"赵六",20);

        // 2.1 判断学号是否存在
        boolean flag = Stuid(arr,stu.getId());
        if(flag){
            // 已经存在
            System.out.println("当前id已经存在,请重新输入!");
        }else{
            // 不存在就判断当前数组长度满没满
            // 2.2 判断数组中是否存满
            int count = Stucount(arr);
            if(count == arr.length){
                // 已经存满
                // 2.3 调用创建新数组方法创建新数组
                StudentInfo[] newArr = Stuarr(arr);
                // 把新元素添加进去
                newArr[count] = stu;

                // 3. 要求2:添加完毕后,遍历出所有学生的信息。调用StuPrint方法遍历
//                StuPrint(newArr);
            }else{
                // 没有存满
                arr[count] = stu;

                // 3. 要求2:添加完毕后,遍历出所有学生的信息。调用StuPrint方法遍历
//                StuPrint(arr);
            }
        }

        // 4. 要求3:通过id删除学生信息(如果存在,就删除,如果不存在,则提示删除失败)
        // 要先找到id在数组中对应的索引,所以需要定义一个方法来拿到id的索引
        // 4.2 判断id存不存在
        int index = Stuindex(arr,3);
        if(index >= 0){
            // 如果存在,就删除
            arr[index] = null;

            // 要求4:删除完毕后,遍历所有学生的信息。
            // 调用StuPrint方法遍历数组学生信息
//            StuPrint(arr);
        }else{
            // 如果不存在,就提示删除失败
            System.out.println("当前id不存在,删除失败!");
        }

        // 5. 要求5:查询数组id为:2的学生,如果存在,则将他的年龄+1岁。
        // 5.1 调用Stuindex方法来拿到id索引
        int index1 = Stuindex(arr,2);
        // 5.2 判断索引
        if(index1 >= 0){
            // 存在  将他的年龄加1
            StudentInfo stu1 = arr[index1];
            // 把原来的年龄拿出来
            int newAge = stu1.getAge() + 1;
            // 把加1之后的年龄塞回去
            stu1.setAge(newAge);
            // 遍历数组
            StuPrint(arr);
        }else{
            // 不存在 则提示
            System.out.println("当前id不存在,修改失败!");
        }
    }

    // 2.1 定义一个方法用来判断添加学生的id存不存在
    public static boolean Stuid(StudentInfo[] arr,int id){
        // 依次获取到数组里面的每一个学生对象
        for (int i = 0; i < arr.length; i++) {
            StudentInfo stu = arr[i];
           if(stu != null){
               // 获取数组中学生对象的id
               int sid = stu.getId();
               // 遍历数组里面的每一位学生的id比较
               if(sid == id){
                   // 如果存在就返回true
                   return true;
               }
           }
        }
        // 当循环结束后还没有找到就表示id不存在
        return false;
    }

    // 2.2 定义一个方法用来判断当前学生数组中已经存了多少个
    public static int Stucount(StudentInfo[] arr){
        // 定义一个计数器用来统计数组有多少个元素
        int count = 0;
        for (int i = 0; i < arr.length; i++) {
            if(arr[i] != null){
                count++;
            }
        }
        // 当循环结束count的个数就是数组当中一共有几个元素
        return count;
    }

    // 2.3 创建一个新的数组,长度=老数组的长度+1,然后把老数组的元素拷贝到新数组当中。
    public static StudentInfo[] Stuarr(StudentInfo[] arr){
        // 创建新数组,长度=老数组的长度+1
        StudentInfo[] newArr = new StudentInfo[arr.length + 1];
        // 循环遍历得到老数组中的每一个元素
        for (int i = 0; i < arr.length; i++) {
            // 把老数组中的元素添加到新的数组中。
            newArr[i] = arr[i];
        }
        // 把新数组返回
        return newArr;
    }

    // 3. 要求2:添加完毕后,遍历出所有学生的信息。
    // 由于他在判断的时候如果存满了就添加进新数组,没有存放就添加进老数组。所有这边需要定义一个方法来遍历两个数组
    public static void StuPrint(StudentInfo[] arr){
        for (int i = 0; i < arr.length; i++) {
            if(arr[i] != null){
                System.out.println("学生id:" + arr[i].getId() + "  姓名:" + arr[i].getName() + "  年龄:" + arr[i].getAge());
            }
        }
    }

    // 4.1 定义一个方法用来拿到id的索引
    public static int Stuindex(StudentInfo[] arr,int id){
        for (int i = 0; i < arr.length; i++) {
            //依次得到每一个学生对象
            StudentInfo stu = arr[i];
            // 对Stu进行一个非空判断
            if(stu != null){
                int sid = stu.getId();
                if(sid == id){
                    return i;
                }
            }
        }
        // 当循环结束之后,还没有找到就表示不存在
        return -1;
    }
}

怎么样,是不是感觉有点难呢?没关系,经过你的多次练习,相信你能做到轻而易举就实现的。有什么不懂的可以在评论区评论哟!我们下期再见!

==最后非常感谢您的阅读,也希望能得到您的反馈  ==