Java的面向对象(初步) 综合练习:学生对象数组的信息输出、删除与修改

本文介绍了如何在Java中使用JavaBean定义学生对象,实现动态数组的操作,包括添加学生(检查ID唯一性)、删除学生和修改特定学生年龄的功能。
摘要由CSDN通过智能技术生成

         由于我是初学者,所以有错误请一定要指正。

目录

        题目

        代码

        JavaBean 代码 

        要求1 与 要求2 代码

        要求3 与 要求4 代码

        要求5 代码


        题目

        定义一个长度为3的数组,数组存储1~3名学生对象作为初始数据,学生对象的学号,姓名各不相同。

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

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

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

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

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

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

        代码

        JavaBean 代码 

// Student 类定义了学生的基本属性和方法
package lxh.cat.prac7;

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;
    }

    // getter 和 setter 方法
    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;
    }
}

        要求1 与 要求2 代码

// StudentTest 类包含 main 方法,用于测试学生数组的添加和打印功能
package lxh.cat.prac7;

public class StudentTest {
    public static void main(String[] args) {
        // 创建一个长度为3的学生数组
        Student[] arr = new Student[3];

        // 创建并初始化三个学生对象
        Student stu1 = new Student(1, "zhangsan", 23);
        Student stu2 = new Student(2, "lisi", 24);
        // Student stu3 = new Student(3, "wangwu", 25); // 未使用的代码

        // 将学生对象添加到数组中
        arr[0] = stu1;
        arr[1] = stu2;
        // arr[2] = stu3; // 未使用的代码

        // 创建第四个学生对象
        Student stu4 = new Student(4, "zhaoliu", 26);

        // 检查数组中是否已存在相同ID的学生
        boolean flag = contains(arr, stu4.getId());

        // 如果ID重复,则提示错误;否则,添加学生到数组
        if(flag){
            System.out.println("当前ID重复,请修改ID后再进行添加");
        }else{
            // 获取数组中非空元素的数量
            int count = getCount(arr);
            // 如果数组已满,则创建新数组并添加学生
            if(count == arr.length){
                Student[] newArr = createNewArr(arr);
                newArr[count] = stu4;
                printArr(newArr);
            }else{
                // 如果数组未满,则直接添加学生
                arr[count] = stu4;
                printArr(arr);
            }
        }
    }

    // 打印学生数组的信息
    public static void printArr(Student[] arr){
        for (int i = 0; i < arr.length; i++) {
            Student stu = arr[i];
            if(stu != null){
                System.out.println(stu.getId() + "," + stu.getAge() + "," + stu.getName());
            }
        }
    }

    // 创建一个新的数组,长度比原数组多1
    public static Student[] createNewArr(Student[] arr){
        Student[] newArr = new Student[arr.length + 1];
        for (int i = 0; i < arr.length; i++) {
            newArr[i] = arr[i];
        }
        return newArr;
    }

    // 获取数组中非空元素的数量
    public static int getCount(Student[] arr){
        int count = 0;
        for (int i = 0; i < arr.length; i++) {
            if(arr[i] != null){
                count++;
            }
        }
        return count;
    }

    // 检查数组中是否存在具有特定ID的学生
    public static boolean contains(Student[] arr, int id){
        for (int i = 0; i < arr.length; i++) {
            Student stu = arr[i];
            if(stu != null){
                int sid = stu.getId();
                if(id == sid){
                    return true;
                }
            }
        }
        return false;
    }
}

        要求3 与 要求4 代码

// StudentTest2 类包含 main 方法,用于测试通过ID删除学生对象的功能
package lxh.cat.prac7;

public class StudentTest2 {
    public static void main(String[] args) {
        // 创建并初始化学生数组
        Student[] arr = new Student[3];
        Student stu1 = new Student(1, "zhangsan", 23);
        Student stu2 = new Student(2, "lisi", 24);
        Student stu3 = new Student(3, "wangwu", 25);
        arr[0] = stu1;
        arr[1] = stu2;
        arr[2] = stu3;

        // 获取ID为2的学生在数组中的索引
        int index = getIndex(arr, 2);
        System.out.println(index);

        // 如果找到学生,则将其从数组中删除
        if (index >= 0) {
            arr[index] = null;
            printArr(arr);
        }else{
            // 如果未找到学生,则打印错误信息
            System.out.println("ID不存在,删除失败");
        }
    }

    // 打印学生数组的信息
    public static void printArr(Student[] arr){
        for (int i = 0; i < arr.length; i++) {
            Student stu = arr[i];
            if(stu != null){
                System.out.println(stu.getId() + "," + stu.getAge() + "," + stu.getName());
            }
        }
    }

    // 获取具有特定ID的学生在数组中的索引
    public static int getIndex(Student[] arr, int id){
        for (int i = 0; i < arr.length; i++) {
            Student stu = arr[i];
            if(stu != null){
                int sid = stu.getId();
                if(sid == id){
                    return i;
                }
            }
        }
        return -1;
    }
}

        要求5 代码

// StudentTest3 类包含 main 方法,用于测试修改学生年龄的功能
package lxh.cat.prac7;

public class StudentTest3 {
    public static void main(String[] args) {
        // 创建并初始化学生数组
        Student[] arr = new Student[3];
        Student stu1 = new Student(1, "zhangsan", 23);
        Student stu2 = new Student(2, "lisi", 24);
        Student stu3 = new Student(3, "wangwu", 25);
        arr[0] = stu1;
        arr[1] = stu2;
        arr[2] = stu3;

        // 获取ID为2的学生在数组中的索引
        int index = getIndex(arr, 2);
        System.out.println(index);

        // 如果找到学生,则增加其年龄
        if (index >= 0) {
            Student stu = arr[index];
            int newAge = stu.getAge() + 1; // 年龄加1
            stu.setAge(newAge);
            printArr(arr);
        }else{
            // 如果未找到学生,则打印错误信息
            System.out.println("ID不存在,修改失败");
        }
    }

    // 打印学生数组的信息
    public static void printArr(Student[] arr){
        for (int i = 0; i < arr.length; i++) {
            Student stu = arr[i];
            if(stu != null){
                System.out.println(stu.getId() + "," + stu.getAge() + "," + stu.getName());
            }
        }
    }

    // 获取具有特定ID的学生在数组中的索引
    public static int getIndex(Student[] arr, int id){
        for (int i = 0; i < arr.length; i++) {
            Student stu = arr[i];
            if(stu != null){
                int sid = stu.getId();
                if(sid == id){
                    return i;
                }
            }
        }
        return -1;
    }
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值