学生管理系统面向对象分析报告

学生管理系统面向对象分析报告

1. 案例中哪里体现出了封装性及其好处?(康奕彬 202421336048)

封装性体现:

  • Student类将所有属性(name, age, gender, id, major, gpa)声明为private
  • 只能通过公共的getter和setter方法访问和修改属性
  • StudentManagementSystem类内部使用private List存储学生数据

封装性的好处:

  • 数据保护:防止外部代码直接修改学生信息,确保数据完整性
  • 实现细节隐藏:外部无需知道数据如何存储,只需调用相应方法
  • 易于维护:修改内部实现不影响外部调用代码

2. 案例中的setter/getter模式与封装性(康奕彬 202421336048)

什么是setter/getter?

  • setter:用于设置属性值的方法,通常以"set"开头
  • getter:用于获取属性值的方法,通常以"get"开头

有什么用?

// 示例:Student类中的getter/setter
public String getName() { return name; }
public void setName(String name) { this.name = name; }
  • 控制属性访问权限
  • 可以在setter中添加验证逻辑
  • 支持数据绑定和序列化

怎么自动生成?
在IDE中通常使用快捷键:

  • Eclipse/STS: Alt+Shift+S → Generate Getters and Setters
  • IntelliJ: Alt+Insert → Getter and Setter

3. 案例中某些类的toString()方法(康奕彬 202421336048)

toString方法的作用:

@Override
public String toString() {
    return "Student{" + "name='" + name + '\'' + ", age=" + age + ... + '}';
}
  • 提供对象的字符串表示形式
  • 便于调试和日志输出
  • 系统自动调用,如System.out.println(student)

toString一般应包含的内容:

  • 类名
  • 所有重要属性的值
  • 格式清晰易读

toString()方法的来源:

  • 继承自Object类
  • Object类的toString()返回类名@哈希码
  • 子类可以重写以提供更有意义的信息

4. 案例中几个常用方法解析(康奕彬 202421336048)

Student.构造方法

public Student(String name, int age, String gender, String id, String major, double gpa)
  • 功能:创建Student对象并初始化所有属性
  • 入参:学生基本信息(姓名、年龄、性别、学号、专业、GPA)
  • 返回:新的Student对象实例

StudentManagementSystem.addStudent(Student student)

public void addStudent(Student student)
  • 功能:向管理系统添加学生
  • 入参:Student对象
  • 返回:void
  • 内部实现:将学生添加到students列表中

StudentManagementSystem.searchByName(String name)

public List<Student> searchByName(String name)
  • 功能:按姓名搜索学生
  • 入参:学生姓名
  • 返回:匹配的学生列表
  • 内部实现:遍历所有学生,比较姓名

5. 案例中的面向对象设计(康奕彬 202421336048)

5.1 案例解决的问题描述

本系统解决学生信息管理问题,主要功能包括学生信息的增删查改。系统需要记录学生的基本信息和学业信息,并提供多种查询方式。

名词(可能类):

  • 学生(Student)
  • 管理系统(StudentManagementSystem)
  • 姓名、年龄、性别、学号、专业、GPA

动词(可能方法):

  • 添加(add)
  • 删除(remove)
  • 搜索(search)
  • 显示(show)

5.2 设计类及其功能

类设计结构:

学生管理系统
├── Student(学生类)
│   ├── 属性:姓名、年龄、性别、学号、专业、GPA
│   └── 方法:getter/setter、toString()
└── StudentManagementSystem(管理系统类)
    ├── 属性:学生列表
    └── 方法:增删查改等操作

各类的功能:

Student类:

  • 封装学生基本信息
  • 提供属性访问接口
  • 格式化输出学生信息

StudentManagementSystem类:

  • 管理学生集合
  • 提供各种查询功能
  • 支持学生信息的增删操作

Main类:

  • 提供用户交互界面
  • 协调各个功能模块
  • 处理用户输入和输出

这种设计符合单一职责原则,每个类都有明确的职责,便于维护和扩展。

posted @ 2025-09-24 17:26  m0rt1s  阅读(1)  评论(0)    收藏  举报