当前位置: 首页 > news >正文

项目作业2

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

目录

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

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)

  1. Student构造方法

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

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

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

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

5. 面向对象设计分析
(姓名:方致沅 学号:202421336050)

5.1 问题分析与抽象

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

5.2 类的职责划分

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

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


http://www.hskmm.com/?act=detail&tid=26408

相关文章:

  • 如何使用 INFINI Gateway 对比 ES 索引数据
  • Ambari安装Hadoop
  • Ambari-bigtop搭建hadoop数据仓库架构
  • 安装Ambari集群
  • Python中的`namedtuple`:命名元组的用法与优势
  • 我的首页
  • 一摞python风格的纸牌
  • 记录一个ubuntu24.04蓝牙不显示不可用的解决方案
  • AI时代需要重新定义投资回报评估模型
  • MOVEit网络攻击波及普华永道与安永,供应链安全再响警钟
  • shell编程
  • Penchick Online Mathematical Olympiad, Qualifying Test 1, III.4
  • QBXT2025S刷题 Day6
  • CF2145 Educational Codeforces Round 183 (Rated for Div. 2) 游记
  • 52个AI工具
  • 可观测专题【左扬精讲】——《Go 语言实现企业级 APM 监控系统实战:从 0 到 1 搭建高性能监控平台》
  • 多区域多 VLAN 网络搭建与访问控制及服务器部署实验
  • Tina_Linux_系统软件 开发指南
  • 2025方钢、扁钢、圆钢、光轴、六角钢、异型钢、冷拉/冷拔方钢、冷拉/冷拔扁钢、冷拉/冷拔圆钢、冷拉/冷拔六角钢、冷拉/冷拔异型钢、热轧方钢/扁钢厂家权威推荐榜:坚固耐用与精准定制口碑之选
  • GO_基础2
  • LDO(一)FVF型LDO
  • 详细介绍:进阶智能体实战九、图文需求分析助手(ChatGpt多模态版)(帮你生成 模块划分+页面+表设计、状态机、工作流、ER模型)
  • 09. 常用控件
  • 201007
  • 苍穹外卖第一天(Maven、Git、Nginx反向代理)
  • Python中的数据结构
  • 2025家纺摄影公司/南通摄影公司权威推荐榜:创意拍摄与专业服务的口碑之选
  • 合成数据生成技术研讨会深度解析
  • 纯 C++ 开发的 Telegram Bot 框架
  • 六级自测