学生管理系统面向对象分析报告
目录
- 案例中封装性的体现及其好处
- setter/getter模式与封装性
- 部分类的toString()方法解析
- 常用方法解析
- 面向对象设计分析
1. 案例中封装性的体现及其好处
(姓名:方致沅 学号:202421336050)
封装性将对象的属性和行为封装在类内部,通过访问控制符(如private、public)限制外部直接访问,仅通过公共方法进行交互。
本案例中,封装性主要体现在Student类中:
- 所有属性(name、age、gender、id、major、gpa)均使用private修饰,外部无法直接访问。
- 外部只能通过公共的getter/setter方法(如getName()、setName())访问或修改属性。
封装性的好处:
- 数据安全:防止外部随意修改属性,可在setter中校验数据合法性(如年龄不能为负数)。
- 易于维护:修改属性访问逻辑只需调整类内方法,无需改动外部代码。
- 信息隐藏:隐藏内部实现细节,外部只需关注类提供的功能。
2. setter/getter模式与封装性
(姓名:方致沅 学号:202421336050)
setter/getter的作用:
- 提供对私有属性的受控访问,是封装性的具体实现。
- 可在setter中添加校验逻辑,确保数据有效。
- 提高灵活性:若属性存储方式改变,只需修改对应方法,不影响外部调用。
自动生成方法:
主流IDE(如IntelliJ IDEA、Eclipse)支持自动生成getter/setter,操作简便(如使用Alt+Insert快捷键)。
3. 部分类的toString()方法解析
(姓名:方致沅 学号:202421336050)
toString()的作用:
返回对象的字符串表示形式,便于打印和调试。若未重写,默认输出类名和哈希值。
案例中的实现:
Student类重写了toString(),输出包含姓名、年龄、ID等核心属性的字符串,便于直观查看学生信息。
方法来源:
toString()继承自Object类,所有Java类均拥有此方法。重写后可自定义输出内容。
4. 常用方法解析
(姓名:方致沅 学号:202421336050)
-
Student构造方法
- 功能:初始化学生对象的所有属性。
- 参数:姓名、年龄、性别、学号、专业、绩点。
-
addStudent方法
- 功能:将学生对象添加到系统列表中。
- 参数:Student对象。
-
searchByName方法
- 功能:根据姓名搜索学生,返回匹配的列表。
- 返回值:List
,无匹配时返回空列表。
-
main方法
- 功能:程序入口,处理用户输入并调用系统功能。
- 参数:命令行参数args。
5. 面向对象设计分析
(姓名:方致沅 学号:202421336050)
5.1 问题分析与抽象
- 名词(类/属性):Student、StudentManagementSystem、姓名、年龄、学号等。
- 动词(方法):添加、删除、搜索、显示等。
5.2 类的职责划分
- Student类:封装学生属性及基本行为,代表“学生”实体。
- StudentManagementSystem类:管理学生数据,实现添加、删除、查询等核心逻辑。
- Main类:程序入口,处理用户交互,调用系统功能。
此设计符合“单一职责原则”,各类职责明确,耦合度低,便于维护和扩展。