项目作业2

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

目录

  1. 案例中封装性的体现及其好处
  2. setter/getter模式与封装性
  3. 部分类的toString()方法解析
  4. 常用方法解析
  5. 面向对象设计分析

1. 案例中封装性的体现及其好处
(姓名:王鑫杰 学号:202421336047)

封装性将对象的属性和行为封装在类内部,通过访问控制符(如private、public)限制外部直接访问,仅通过公共方法进行交互。

本案例中,封装性主要体现在Student类中:

  • 所有属性(name、age、gender、id、major、gpa)均使用private修饰,外部无法直接访问。
  • 外部只能通过公共的getter/setter方法(如getName()、setName())访问或修改属性。

封装性的好处

  • 数据安全:防止外部随意修改属性,可在setter中校验数据合法性(如年龄不能为负数)。
  • 易于维护:修改属性访问逻辑只需调整类内方法,无需改动外部代码。
  • 信息隐藏:隐藏内部实现细节,外部只需关注类提供的功能。

2. setter/getter模式与封装性
(姓名:王鑫杰 学号:202421336047)

setter/getter的作用

  • 提供对私有属性的受控访问,是封装性的具体实现。
  • 可在setter中添加校验逻辑,确保数据有效。
  • 提高灵活性:若属性存储方式改变,只需修改对应方法,不影响外部调用。

自动生成方法
主流IDE(如IntelliJ IDEA、Eclipse)支持自动生成getter/setter,操作简便(如使用Alt+Insert快捷键)。


3. 部分类的toString()方法解析
(姓名:王鑫杰 学号:202421336047)

toString()的作用
返回对象的字符串表示形式,便于打印和调试。若未重写,默认输出类名和哈希值。

案例中的实现
Student类重写了toString(),输出包含姓名、年龄、ID等核心属性的字符串,便于直观查看学生信息。

方法来源
toString()继承自Object类,所有Java类均拥有此方法。重写后可自定义输出内容。


4. 常用方法解析
(姓名:王鑫杰 学号:202421336047)

  1. Student构造方法

    • 功能:初始化学生对象的所有属性。
    • 参数:姓名、年龄、性别、学号、专业、绩点。
  2. addStudent方法

    • 功能:将学生对象添加到系统列表中。
    • 参数:Student对象。
  3. searchByName方法

    • 功能:根据姓名搜索学生,返回匹配的列表。
    • 返回值:List,无匹配时返回空列表。
  4. main方法

    • 功能:程序入口,处理用户输入并调用系统功能。
    • 参数:命令行参数args。

5. 面向对象设计分析
(姓名:王鑫杰 学号:202421336047)

5.1 问题分析与抽象

  • 名词(类/属性):Student、StudentManagementSystem、姓名、年龄、学号等。
  • 动词(方法):添加、删除、搜索、显示等。

5.2 类的职责划分

  • Student类:封装学生属性及基本行为,代表“学生”实体。
  • StudentManagementSystem类:管理学生数据,实现添加、删除、查询等核心逻辑。
  • Main类:程序入口,处理用户交互,调用系统功能。

此设计符合“单一职责原则”,各类职责明确,耦合度低,便于维护和扩展。


posted @ 2025-10-07 23:49  w4ngXj  阅读(8)  评论(0)    收藏  举报