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

课堂案例分析

案例中几个常用方法解析

在这里插入图片描述
==>Student.Student(String name, int age, String gender, String id, String major, double gpa)
功能描述:这是Student类的构造方法,用于创建Student对象时初始化学生的姓名、年龄、性别、学号、专业和GPA。

StudentManagementSystem 类
  • addStudent(Student student)
    入参 :Student 对象
    功能:将给定的 Student 对象添加到学生管理系统中。
    返回参数:无(void)
  • removeStudent(Student student)
    入参 :Student 对象
    功能:从学生管理系统中移除指定的 Student 对象。
    返回参数:无(void)
  • getStudents()
    入参:无
    功能:获取学生管理系统中所有学生的列表。
    返回参数:List,包含系统中所有学生的列表。
  • searchByName(String name)
    入参:String(学生姓名)
    功能:根据学生姓名搜索学生,并返回匹配的学生列表。
    返回参数:List,包含姓名匹配的学生列表。
  • searchByMajor(String major)
    入参:String(学生专业)
    功能:根据学生专业搜索学生,并返回匹配的学生列表。
    返回参数:List,包含专业匹配的学生列表。
  • searchByGpa(double gpa)
    入参:double(学生 GPA)
    功能:根据学生 GPA 搜索学生,并返回匹配的学生列表。
    返回参数:List,包含 GPA 匹配的学生列表。
案例中的面向对象设计
5.1 尝试用一段话描述案例所解决的问题。找到其中的名词与动词。

该案例通过面向对象的方式设计了一个学生管理系统,该系统允许用户添加、删除、以及按姓名、专业和 GPA 搜索学生信息,并展示所有学生的列表。用户通过命令行界面与系统交互,系统内部则通过 Student 和 StudentManagementSystem 类来存储和管理学生数据。

5.2 如果让你设计,根据上面的分析你会抽象出什么类?各具备什么功能?
  • Student 类
  • 功能:表示一个学生对象,包含学生的姓名、年龄、性别、学号、专业和 GPA 等属性。
  • 方法:构造函数用于初始化对象,toString() 方法用于输出学生的详细信息(便于打印)。
    StudentManagementSystem 类
  • 功能:管理学生信息,包括添加、删除、搜索学生等功能。
  • 方法:
    addStudent(Student student):添加学生到系统中。
    removeStudent(Student student):从系统中移除学生。
    getStudents():获取系统中所有学生的列表。
    searchByName(String name):按姓名搜索学生。
    searchByMajor(String major):按专业搜索学生。
    searchByGpa(double gpa):按 GPA 搜索学生。
  • Main 类(或称为命令行界面类)
  • 功能:作为程序的主入口,负责接收用户输入,并调用 StudentManagementSystem 类的方法来执行相应的操作。
  • 方法:main(String[] args) 方法,包含程序的主循环,用于处理用户输入和调用其他类的方法。
小结

在面向对象编程中,“类”是封装数据和行为的基本单元。本文通过设计一个简单的Student类,探讨如何利用面向对象的思想(封装、继承、多态)来组织代码,实现对学生信息的管理与操作。这一部分比较关键的知识点就是student类,里面需要涉及到以下几个部分:

  1. 封装学生基本信息:学号、姓名、年龄、学科成绩等属性。
  2. 提供数据操作接口:通过方法设置/获取属性,确保数据合法性(如学号唯一、成绩范围有效)。
  3. 实现业务逻辑:计算平均成绩、生成学生信息等。
    在完成这部分内容时比较困扰我的就是接口问题,有时候没有办法获得有效数据导致后续统计成绩查询成绩的时候没有办法实现,这是以后需要解决的比较关键的问题。
http://www.xdnf.cn/news/200935.html

相关文章:

  • 01《音量控制器》Unity
  • python使用dlib的5点和68点的人脸检测
  • 2020南京区域赛vp
  • Linux系统之----程序地址空间
  • mac 基于Docker安装minio服务器
  • JavaWeb:vueaxios
  • MetaEditor - 自动交易和技术指标编辑器
  • 知识体系_用户研究_用户体验度量模型
  • Python3:Jupyterlab 安装和配置
  • Java并发探索--上篇
  • SD04_CurSor提示词
  • 计算字符串的编辑距离和单向链表中倒数第k个结点
  • 普推知产:商标驳回复审下初步审定公告了!
  • 【C++】Googletest应用
  • python+selenium的web自动化之元素的常用操作
  • 人物5_My roommate
  • 【java】接口
  • linux跟踪调试进程异常的方法
  • Verilog基础:生成块结构(Generate)
  • 将python程序创建成可以在扣子中运行的插件
  • CH592/CH582 触摸按键应用开发实例讲解
  • 面向城市治理的AI集群空域融合模型
  • 数据仓库建模:方法、技巧与实践
  • 罗马数字转整数(简单)
  • pidstat 使用教程:功能介绍及实战示例
  • 用jmeter压测接口,并生成压测报告
  • 工业通讯现场中关于EtherCAT转TCPIP网关的现场应用
  • 初识c++
  • Miniconda Windows10版本下载和安装
  • 工业园区工厂企业数字IP广播应急呼叫对讲系统:数字IP广播极大提升工厂企业管理效率与应急响应效能