学生信息管理系统
功能讲解
数据处理
该程序主要处理学生相关的结构化数据,具体包括学生的姓名、年龄、性别、学号、专业和绩点共 6 类属性数据。程序中的学生数据存储在内存中的集合对象里:在 StudentManagementSystem 类中,通过 private List
与C语言数据存储区别
1.使用面向对象的 Student 类封装学生属性,通过 List
2.由 JVM 自动管理内存(垃圾回收机制),添加 / 删除学生对象时无需手动分配 / 释放内存,减少内存泄漏风险。
3.借助 List 集合提供的 add()、remove() 等方法简化数据操作,无需手动维护数组下标和元素移动。
4.通过 Student 类的私有属性(private)和公共 getter/setter 方法,实现数据封装,确保数据访问的安全性(如避免直接修改 age 为负数)。
类功能讲解
Student 类
功能概述
封装学生的基本信息,作为系统中 “学生” 实体的数据载体,是整个系统的核心数据模型。
属性用途
name:存储学生姓名
age:存储学生年龄
gender:存储学生性别
id:存储学生唯一标识(学号),用于区分不同学生
major:存储学生所属专业
gpa:存储学生的绩点成绩
包含的方法:
全参构造方法:初始化学生的所有属性
各属性的 getter 方法(如 getName()):获取属性值
各属性的 setter 方法(如 setName()):修改属性值
toString() 方法:将学生信息格式化为字符串,便于打印展示
StudentManagementSystem 类
功能概述
实现学生数据的核心管理逻辑,是连接数据模型(Student)和用户交互(Main)的中间层。
属性用途:
students:一个 List
包含的方法:
构造方法
初始化 students 集合
addStudent():向集合中添加学生对象
removeStudent():从集合中移除指定学生对象
getStudents():获取所有学生对象的集合
searchByName():根据姓名查询匹配的学生对象
searchByMajor():根据专业查询匹配的学生对象
searchByGpa():根据绩点查询匹配的学生对象
Main 类
功能概述
作为程序的入口,负责接收用户输入、展示操作菜单、调用 StudentManagementSystem 的方法完成用户需求,并将结果反馈给用户。
属性用途
scanner:Scanner 对象,用于读取用户的控制台输入
sms:StudentManagementSystem 对象,用于调用学生管理的核心方法
running:布尔值,控制程序主循环的运行状态
包含的方法
main() 方法:程序入口,实现用户交互的主逻辑,通过 switch 语句处理不同操作选择
基本语法讲解
List 是 Java 集合框架(java.util)中的一个有序、可重复的接口,可以理解为 “动态数组”—— 相比传统数组(如 Student[]),它无需预先定义长度,能自动根据存储的元素数量扩容 / 缩容,非常适合存储 “数量不确定的同类型对象”
package code;
import java.util.ArrayList;
import java.util.List;public class StudentManagementSystem {// 1. 定义 List:限定存储类型为 Student(泛型),私有属性确保数据安全private List<Student> students;// 2. 构造方法中初始化 List:选择 ArrayList 作为实现类public StudentManagementSystem() {students = new ArrayList<>();}// ... 其他方法(add/remove/search)...
}
getter 和 setter 方法:为Student类的私有属性提供public的getXxx()和setXxx()方法(如getName()、setName()),通过方法访问和修改私有属性,是 Java 封装特性的典型实现方式。
public String getGender() {return gender;}public void setGender(String gender) {this.gender = gender;}