在学习完java入门知识后,可以完成一个小案例对已学知识进行总结和回顾,现在完成一个比较经典的"学生管理系统",对学生进行一些简单的增删查改功能,如下:

准备工作:1)创建学生类,添加:成员变量,成员方法,空参满参构造方法,geter,seter方法,toString方法.
2)创建学生测试类,并完成基本功能:添加学生信息,查看学生信息,修改学生信息,删除学生信息,退出系统.

学生类:

import java.util.Objects;

 //创建学生类包含:学号,姓名,年龄,地址
public class Student {
    private String stuId;
    private String name;
    private String age;
    private String studress;

    public Student() {
    }

    public Student(String stuId, String name, String age, String studress) {
        this.stuId = stuId;
        this.name = name;
        this.age = age;
        this.studress = studress;
    }

    public String getStuId() {
        return stuId;
    }

    public void setStuId(String stuId) {
        this.stuId = stuId;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getAge() {
        return age;
    }

    public void setAge(String age) {
        this.age = age;
    }

    public String getStudress() {
        return studress;
    }

    public void setStudress(String studress) {
        this.studress = studress;
    }

    @Override
    public String toString() {
        return "Student{" +
                "stuId='" + stuId + '\'' +
                ", name='" + name + '\'' +
                ", age='" + age + '\'' +
                ", studress='" + studress + '\'' +
                '}';
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Student student = (Student) o;
        return Objects.equals(stuId, student.stuId) &&
                Objects.equals(name, student.name) &&
                Objects.equals(age, student.age) &&
                Objects.equals(studress, student.studress);
    }

    @Override
    public int hashCode() {

        return Objects.hash(stuId, name, age, studress);
    }
}

学生测试类:

import java.util.ArrayList;
import java.util.Scanner;

public class StudentTest {
    public static void main(String[] args) {
        ArrayList<Student> list = new ArrayList<>();                              //创建用来接收Student对象的集合
        while (true) {
            System.out.println("----------欢迎使用学生管理系统----------");        //欢迎界面
            System.out.println("*1添加学生信息");
            System.out.println("*2查询学生信息");
            System.out.println("*3修改学生信息");
            System.out.println("*4删除学生信息");
            System.out.println("*5退出");
            Scanner scannere = new Scanner(System.in);
            System.out.println("请输入您要进行的操作");
            String choose = scannere.next();                                     //对用户的输入进行选择,选择swich语句
            switch (choose) {
                case "1":
                    addstu(list);                                         //为了避免主方法中过于冗长,所有需求实现进行封装
                    System.out.println("===================================");
                    System.out.println();
                    break;
                case "2":
                    charstu(list);
                    System.out.println("===================================");
                    System.out.println();
                    break;
                case "3":
                    updatestu(list);

                    System.out.println("===================================");
                    System.out.println();
                    break;
                case "4":
                    deletestu(list);
                    System.out.println("===================================");
                    System.out.println();
                    break;
                case "5":
                    System.out.println("*谢谢使用,再见!*");
                    System.exit(0);
                default:
                    System.out.println("输入错误,请重新输入");
                    System.out.println("===================================");
                    System.out.println();
                    break;
            }
        }
    }

    private static void deletestu(ArrayList<Student> list) {            //删除方法:考虑1:集合中是否有元素可以删除
        if (list.size() == 0) {
            System.out.println("系统没有任何学生信息,请重新选择其他功能");
            return;
        }
        Scanner scanner = new Scanner(System.in);                         //考虑2:集合中是否有用户要删除的元素
        while (true) {                                                    //创建一个死循环
            System.out.println("请输入您要删除的学生学号");
            String s = scanner.next();
            int index = -1;
            for (int i = 0; i < list.size(); i++) {
                if (s.equals(list.get(i).getStuId())) {
                    index = i;
                }
            }
            if (index == -1) {
                System.out.println("没有您要删除信息,请重新输入");       //如果没有则继续死循环,如果有就删除元素并跳出死循环
            } else {
                list.remove(index);
                System.out.println("*学生信息删除完成!*");
                break;
            }
        }
    }


    private static void updatestu(ArrayList<Student> list) {            //修改方法:考虑1:集合中是否有元素可以修改
        if (list.size() == 0) {
            System.out.println("系统没有任何学生信息,请重新选择其他功能");
            return;
        }
        Scanner sc = new Scanner(System.in);                            //考虑2:集合中是否有用户要修改的元素
        System.out.println("请输入要修改的学生学号:");
        int index = -1;
        String id = " ";
        while (true) {
            id = sc.nextLine();
            for (int i = 0; i < list.size(); i++) {
                Student student = list.get(i);
                if (student.getStuId().equals(id)) {
                    index = i;
                }
            }
            if (index == -1) {                                  //如果没有则继续死循环,如果跳出死循环,并进行相应的修改功能
                System.out.println("学号不存在,请重新输入:");
            } else {
                break;
            }
        }
        System.out.println("请输入要修改的学生姓名:");
        String name = sc.nextLine();
        System.out.println("请输入要修改的学生年龄:");
        String age = sc.nextLine();
        System.out.println("请输入要修改的学生地址:");
        String address = sc.nextLine();
        Student student = new Student(id, name, age, address); //将要修改的信息添加到新创建的对象中,并在集合中将原对象替换
        list.set(index, student);
        System.out.println("*学生信息修改完成!*");
    }


    private static void charstu(ArrayList<Student> list) {                 //查询方法:考虑:集合中是否有元素可以查询
        if (list.size() == 0) {
            System.out.println("系统没有任何学生信息,请重新选择其他功能");
            return;
        }
        System.out.println("*学号*     *姓名*     *年龄*    *地址*");       //将控制台页面简单的美化更容易查看
        for (Student student : list) {
            System.out.println(student.getStuId() + "         " +
                    student.getName() + "        " +
                    student.getAge() + "      " +
                    student.getStudress());
        }
        System.out.println("*查询学生信息成功*");
    }


    private static void addstu(ArrayList<Student> list) {           //添加方法:考虑:集合中元素学号都是唯一的,不可重复
        Scanner scanner = new Scanner(System.in);
        String s = null;
        while (true) {                                              //创建死循环
            System.out.println("请输入学生学号");
            s = scanner.nextLine();
            boolean flag = true;
            for (int i = 0; i < list.size(); i++) {
                String stuId = list.get(i).getStuId();
                if (s.equals(stuId)) {
                    flag = false;
                }
            }
            if (flag == true) {                                       //如果学号在集合中不存在,跳出死循环进行添加功能
                break;
            } else {                                                  //如果学号在集合中已经存在,继续死循环
                System.out.println("您输入的学生学号已存在,请重新输入");
            }
        }
        Student student = new Student();
        student.setStuId(s);
        System.out.println("请输入学生姓名");
        student.setName(scanner.next());
        System.out.println("请输入学生年龄");
        student.setAge(scanner.next());
        System.out.println("请输入学生地址");
        student.setStudress(scanner.next());
        list.add(student);
        System.out.println("*添加学生信息成功*");
    }
}

完成学生管理系统并进行测试.