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

项目案例作业2

于鸿硕项目案例作业2

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

在Student类中体现了封装性,主要表现为:public类Student,private成员变量(name、age、gender等),public类下的getter(getName、getAge等)方法和setter(setName、setAge等)方法;

img

图1.1 Studengt类封装示例

这些方法体现了封装性的好处,例如,private的成员变量可以使得外部无法更改Student类的结构框架,保护稳定;同时,Setter和Getter使得外部可以获得和设置成员变量属性,实现Student类的稳定运行。


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

  • getter 方法:访问器方法,通常遵循命名小驼峰规范。它的作用是获取对象中私有属性的值 ,并返回给调用者。比如在Student类中,有私有属性private String name;,可以通过public String getName()方法来获取name的值。

  • setter 方法:修改器方法,同样遵循命名小驼峰规范 。它的作用是为对象的私有属性设置值。同样在Student类中,对于private String name; ,可以通过public void setName(String name) 方法来设置name的值。

封装性体现于 保护数据安全、方便后续调用(接口)

在IDEA中,可以把光标移到要生成的类,然后使用Alt + Insert,选择Getter/Setter生成


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

toString方法的作用:

方便输出和调试 将对象转换为一个合适的字符串表示,不需要手动获取每个属性再一个一个System.out.println

toString方法一般包含的内容:

对象的类名以及关键属性值,例如:Student类里的toString输出为“name=‘XXX',age=XX.......”。

img

图3.1 Student类的toString方法

toString()方法的来源

toString()方法定义在java.lang.Object类中,其原始定义如下:

public String toString() {return getClass().getName() + "@" + Integer.toHexString(hashCode());
}

我们常常通过重写toString方法(@Override)来使他的输出符合我们需要


4 案例中常用方法解析

在StudentManagementSystem类中,存在以下方法:

addStudent,签名add(Student),作用增加一个学生对象

removeStudent,签名remove(Student),作用移除一个学生对象

searchByName,签名search(String),作用按名字查找学生 返回学生

searchByMajor,签名search(String),作用按专业查找学生 返回学生

searchByGpa,签名search(double),作用按绩点查找学生 返回学生


5 案例中的面向对象设计

**5.1 **

该案例实现了一个学生管理系统,解决了对学生信息(姓名、年龄、性别、学号、专业、GPA)的添加、删除、按姓名 / 专业 / GPA 查询及展示所有学生信息的问题,通过命令行交互界面让用户可便捷地管理学生数据。

  • 名词:学生(Student)、姓名(name)、年龄(age)、性别(gender)、学号(id)、专业(major)、GPA、学生管理系统(StudentManagementSystem)、用户(user)、命令行界面(interface)、信息(information)。
  • 动词:添加(add)、删除(remove)、查询(search)、展示(show)、输入(enter)、退出(exit)、管理(manage)、存储(store)。

5.2

基于上述分析,抽象出的类及功能如下:

  1. Student 类

    • 功能:封装学生的属性(姓名、年龄、性别、学号、专业、GPA),并提供属性的获取(getter)和修改(setter)方法,以及格式化输出学生信息的 toString() 方法,作为数据载体。
  2. StudentManagementSystem 类

    • 功能

      :负责学生信息的核心管理逻辑,包括:

      • 存储学生集合(通过 List 容器);
      • 提供添加学生(addStudent)、删除学生(removeStudent)的方法;
      • 提供按姓名、专业、GPA 查询学生的方法(searchByNamesearchByMajorsearchByGpa);
      • 提供获取所有学生列表的方法(getStudents)。
  3. Main 类

    • 功能:作为用户交互入口,通过命令行界面接收用户输入(如选择操作类型、输入学生信息),调用 StudentManagementSystem 的方法执行对应操作,并将结果反馈给用户,实现人机交互流程的控制。
  4. StudentManagementSystemTest 类

    • 功能:作为测试类,通过创建学生对象、调用管理系统的方法,验证添加、删除、查询等功能的正确性,确保核心逻辑正常运行。
http://www.hskmm.com/?act=detail&tid=26733

相关文章:

  • VMware ESXi 9.0 macOS Unlocker OEM BIOS 2.7 H3C 新华三 定制版
  • VMware ESXi 9.0 macOS Unlocker OEM BIOS 2.7 Inspur 浪潮 定制版
  • 上手 Rokid JSAR:新手也能快速入门的 AR 开发之旅
  • 2025 年氨基酸水溶肥厂家最新推荐榜单:聚焦花芽分化膨果上色需求,精选优质企业助农户科学选购花芽分化/膨果上色/促花稳果/低温酶解氨基酸水溶肥厂家推荐
  • VMware ESXi 8.0U3g macOS Unlocker OEM BIOS 2.7 H3C 新华三 定制版
  • 2025 年最新防火涂料厂家排行榜:钢结构各类防火涂料优质厂家最新推荐,助力建筑安全选型 钢结构/水性/隧道/环保/饰面型防火涂料厂家推荐
  • 嵌入式固件升级框架详解与实战经验
  • 2025 年家用电梯最新推荐排行榜:精选技术领先、服务优质的实力品牌,助您精准选购
  • helm 模板的基础使用
  • 20251008J赛合订本
  • [计算机组成] 计算机字体文件及其运行原理
  • 后量子密码技术延迟随数据量增加而降低
  • 2025 南昌装修公司最新推荐榜单:权威解析本土标杆与新锐品牌,助力品质家装决策南昌装修设计 / 南昌装修设计师公司推荐
  • 1000th post Problem 1
  • 下行经济周期,就应该做只能在下行周期里做的事情
  • 题解:AT_agc065_d [AGC065D] Not Intersect
  • uniapp滚动导航 - unique
  • 滚动导航 - unique
  • windows剪切板工具
  • P1545 [USACO04DEC] Dividing the Path G 题解
  • 视频采集程序
  • java作业2
  • 关于PPT的课后作业
  • RK 系列 GPU 驱动检查方法
  • 咕乡
  • Linux随记(十八) - 详解
  • week2课后作业
  • Java 语言程序设计(第二讲 方法)动手动脑与课后实验问题整理文档 - 20243867孙堃2405
  • 算法第一章
  • mac打开app提示文件损坏解决方案