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

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

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

目录

  • 1. 案例中哪里体现出了封装性及其好处?
  • 2. 案例中的setter/getter模式与封装性?
  • 3. 案例中某些类的toString()方法?
  • 4. 案例中几个常用方法解析。
  • 5. 案例中的面向对象设计
  • 5.1 尝试用一段话描述案例所解决的问题。找到其中的名词与动词。
  • 5.2 如果让你设计,根据上面的分析你会抽象出什么类?各具备什么功能?

1. 案例中哪里体现出了封装性及其好处?

(陈思盈 202421336070)
在Student类中属性体现了封装性。

private String name;private int age;private String gender;private String id;private String major;private double gpa;

好处:

  1. 数据安全性:通过private修饰,外部无法直接修改访问这些成员变量(如name、age等),只能通过类提供的方法setter/getter进行访问和修改,避免了外部代码随意篡改数据。
  2. 隐藏实现细节:外部只需要知道如何通过方法使用类的功能,而不需要了解类内部的数据结构和实现方式,降低了代码的耦合度

耦合度

  • 在编程中,耦合度(Coupling) 指的是两个或多个模块(类、函数、组件等)之间的依赖程度。
  • 耦合度越高,意味着模块之间的联系越紧密,一个模块的修改可能会直接影响到其他模块;反之,耦合度越低,模块之间相对独立,修改一个模块时对其他模块的影响也越小。

2. 案例中的setter/getter模式与封装性?

(陈思盈 202421336070)
什么是setter/getter?有什么用?
点击蓝色字体查看相应链接。

  • 通过setter可以通过外部(控制台)为属性赋值
  • 虽然无法直接访问私有属性,但可以通过getter可以通过外部访问内部属性的值。

怎么自动生成getter/setter

  1. 同时点击Alt+Insert.
  2. 选中getter和setter
    image
  3. 选择对应属性,并确定.
    image

3. 案例中某些类的toString()方法?

(陈思盈 202421336070)

简述toString方法有什么用?

  • 直接输出类或者应用系统默认的toString方法会得到对应的哈希值
  • 重新根据类自动生成的toString方法将原有的方法覆盖类中对应的属性的值按照一定的格式转化成字符串,并返回。

toString一般应包含什么内容?

默认的toString方法

public String toString() {return getClass().getName() + "@" + Integer.toHexString(hashCode());}
  • Student案例中分别有name,age,gender,id,major,gpa这几个属性,因此toString方法中即包含了字符串name也包含了name相应的值,彼此之间通过+号拼接起来。其他属性也类似。

toString()方法从哪里来?

在 Java 中,toString() 方法来自所有类的直接或间接父类 ——java.lang.Object 类。

4. 案例中几个常用方法解析。

(陈思盈 202421336070)

  • Student类
public Student(String name, int age, String gender, String id, String major, double gpa) ;
  1. 参数:string name,int age,string gender,string id,string major,double gpa
  2. 功能:用于对象的初始化
  3. 返回参数:无返回值
public void setName(String name) ;
  1. 参数:string name
  2. 功能:用于对象的初始化
  3. 返回参数:无返回值
public String getName()
  1. 参数:无
  2. 功能:访问对象的属性(name)
  3. 返回参数:返回对象的属性(name)
    其余的setter/getter也是如此。
public String toString() ;
  1. 参数:无
  2. 功能:按照字符串的形式输出对象的各个属性。
  3. 返回参数:name,age,gender,id,major,gpa
  • StudentManagementSystem类
public List<Student> searchByName(String name);
  1. 参数:string name
  2. 功能:根据姓名在学生集合中查找匹配的学生
  • 先创建一个空的ArrayList集合result,用于存储查找结果
  • 通过增强 for 循环遍历一个名为students的学生集合
  • 对每个Student对象,调用其getName()方法获取姓名,并与参数name进行比较(equals方法)
  • 如果姓名匹配成功,就将该Student对象添加到result集合中
  • 遍历结束后,返回存储所有匹配结果的result集合
  1. 返回参数:List

5. 案例中的面向对象设计

(陈思盈 202421336070)

5.1 尝试用一段话描述案例所解决的问题。找到其中的名词与动词。

该案例构建了一个学生管理系统,需要对在读的学生信息例如姓名,年龄,性别,id,专业,绩点进行录入或者删除,通过这个系统可以查看到所有学生的信息,并且可以分别按照姓名,专业,绩点进行查找该学生。

  • 名词:学生,姓名,年龄,性别,id,专业,绩点
  • 动词:录入,删除,查看,查找

5.2 如果让你设计,根据上面的分析你会抽象出什么类?各具备什么功能?

类:Student
功能:添加学生信息;删除学生信息;展示所有学生信息;按照姓名查找学生并展示学生信息;按照专业查找学生并展示学生信息;按照绩点查找学生并展示学生信息。

http://www.sczhlp.com/news/170167/

相关文章:

  • 荷兰青少年通过Telegram被招募,涉嫌参与俄罗斯支持的黑客活动
  • 企业网站策划方案书建站视频教程网
  • 公司名称 网站域名 关联wordpress 绕过后台
  • 网站设计英文报告网站建设徐州百度网络网站
  • 励志做的很好的网站seo排名教程
  • 鼎豪网站建设windows server2012 wordpress
  • dw网页制作教程个人网站租赁合同模板
  • 永康电子商务网站建设公司管理信息系统
  • 手机网站大全1广州注册公司流程及资料
  • 俄语网站模板阿里域名购买网站
  • 上海好的高端网站建设制作app需要什么软件
  • 影视公司网站建设网站空间购买北京
  • 网站建设公司 - 百度wordpress表情
  • 移动端 pc网站开发惠州市网站建设企业
  • 给别人做网站的话术免费ftp 网站
  • 网站推广策划方式什么是网站运营推广
  • 宣城市网站集约化建设自己做的网址危险网站
  • 大气网站源码下载网络推广培训教程
  • 网站添加wordpress博客网站打开空白页
  • 做筹款的网站需要什么资质潍坊企业建站系统
  • 如何绑定网站衡阳网页设计
  • 中小企业网站建设教程苏州网页服务开发与网站建设
  • 口碑好的网站定制公司企业网站管理系统 cms
  • 永兴县网站建设公司哪家好只做网站可以在百度里收到吗
  • 百胜招聘 网站开发国外的域名注册网站
  • 自定义网站建设惠州seo外包v1
  • 做网站需要什么书做网站卖什么
  • day18 课程(模块 )
  • Kubernetes(K8s)核心架构解析与实用命令大全 - 教程
  • mzoj 2025/10/6