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

news/2025/10/6 18:04:10/文章来源:https://www.cnblogs.com/Chensy-CSY/p/19127787

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

目录

  • 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.mzph.cn/news/929575.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

荷兰青少年通过Telegram被招募,涉嫌参与俄罗斯支持的黑客活动

两名17岁荷兰青少年通过Telegram被招募,涉嫌为亲俄黑客从事间谍活动。他们使用Wi-Fi嗅探器在欧盟机构总部和使馆周边进行网络测绘,目前一人被拘留,一人被软禁。案件凸显国家支持黑客利用未成年人作为"可抛弃代…

网站推广策划方案毕业设计免费建立网站有必要吗

一个master可以拥有多个slave&#xff0c;一个slave又可以拥有多个slave&#xff0c;如此下去&#xff0c;形成了强大的多级服务器集群架构 比如&#xff0c;将ip为192.168.1.10的机器作为主服务器&#xff0c;将ip为192.168.1.11的机器作为从服务器 说明&#xff1a;ip可以换为…

网站开发部门工资入什么科目营销一体化营销平台

org.springframework.util.StringUtils 1、字符串判断工具 // 判断字符串是否为 null&#xff0c;或 ""。注意&#xff0c;包含空白符的字符串为非空 boolean isEmpty(Object str) // 判断字符串是否是以指定内容结束。忽略大小写 boolean endsWithIgnoreCase…

Moscow International Workshops 2017. Day 4. Lviv NU Contest, GP of Ukraine

Preface 国庆本以为空的一批结果忙的飞起,好不容易抽时间凑到三个人,结果被 Div2 小登们按在地上摩擦。B. Card Game 签到,暴力枚举约数即可 #include<cstdio> #include<iostream> #include<map>…

网站开发有哪些技术wordpress新建音乐界面

转载自 ClassLoader 详解及用途 ClassLoader主要对类的请求提供服务&#xff0c;当JVM需要某类时&#xff0c;它根据名称向ClassLoader要求这个类&#xff0c;然后由ClassLoader返回这个类的class对象。 1.1 几个相关概念ClassLoader负责载入系统的所有Resources&#xff08;…

提供手机自适应网站土木工程网官网登录

Hadoop 1、 Hadoop的介绍 Hadoop最早起源于Nutch。Nutch的设计目标是构建一个大型的全网搜索引擎&#xff0c;包括网页抓取、索引、查询等功能&#xff0c;但随着抓取网页数量的增加&#xff0c;遇到了严重的可扩展性问题——如何解决数十亿网页的存储和索引问题。2003年、20…

云原生架构的演进与落地:重塑企业 IT 的核心能力 - 实践

云原生架构的演进与落地:重塑企业 IT 的核心能力 - 实践2025-10-06 17:49 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important;…

小代码使用npm包的方法

小代码使用npm包的方法pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", &quo…

用手机域名做网站有多少张家口网站建设工作室

以下是电力行业中分布式能源管理(Distributed Energy Management System, DEMS)的实现方案,涵盖系统架构、关键技术、核心功能及实施路径,结合典型场景与代码示例: 一、系统架构设计 采用云-边-端三层架构,实现分布式能源的高效协同管理: 1. 终端层(感知层) 设备组…

网站做支付宝接口网页设计基础试题

Java Learning Path&#xff08;三&#xff09;过程篇   每个人的学习方法是不同的&#xff0c;一个人的方法不见得适合另一个人&#xff0c;我只能是谈自己的学习方法。因为我学习Java是完全自学的&#xff0c;从来没有问过别人&#xff0c;所以学习的过程基本上完全是自己…

张家港做网站优化排名新乡网站设计公司

摘要&#xff1a;当前,多核技术的不断发展和日渐成熟,使得处理器的性能得到巨大提升.但是对于存储设备来说,无论是速度还是容量都无法跟上这种步伐.随着处理器和其它子系统发展差距的日益加大,超级计算机的效率问题逐渐成为人们讨论和研究的热点,大部分的实际应用在超级计算机上…

day18 课程(模块 )

day18 课程(模块 &)课程: 18.1 了解模块------------------------------------------------ 执行后18.2 导入模块之方法一------------------------------------------------ 执行后18.3 导入模块之方法二-----…

Kubernetes(K8s)核心架构解析与实用命令大全 - 教程

Kubernetes(K8s)核心架构解析与实用命令大全 - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas&qu…

mzoj 2025/10/6

T1 考试时写的 \(O(n^4)\) 的,差点四了( 可以直接用 Floyd 找哪些可以由其他路径拼起来,剩下的是必须的。 rep(k,1,n) rep(i,1,n) rep(j,1,n)if(mp[i][j]==mp[i][k]+mp[k][j]&&mp[i][j]&&mp[i][k]&…

在 Windows 系统下配置 VSCode + CMake + Ninja 进行 C++ 或 Qt 创建

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

全源最短路 Johnson算法

洛谷p5905 #include<bits/stdc++.h> using namespace std; #define endl \n typedef long long LL; typedef pair<int,int> PII; const int N=3e3+10,INF=1e9; vector<PII> edges[N]; int dist[N],n…

UNION 与 UNION ALL 的区别 - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

大学生做爰网站弄一个关于作文的网站怎么做

每日总结 20240221 花自飘零水自流。一种相思&#xff0c;两处闲愁。 —— 李清照「一剪梅红藕香残玉簟秋」 1. stat 在Linux中&#xff0c;stat 是一个用于显示文件或文件系统状态的命令行工具。它提供了关于文件的详细信息&#xff0c;包括文件类型、权限、大小、所有者、修…

网站开发教程视频百度云资源dede怎么做视频网站

目录 输入方法 Scanner类的9大输入方法 输出方法 print println printf 例题实战 题目进阶 输入方法 最常见的输入输出方法 输入Scanner类 Scanner是Java5的新特征&#xff0c;在java.util包里&#xff0c;可以完成用户输入&#xff1a; 导入java.util包 构造Scanner对象&…