项目案例作业2
学生管理系统面向对象分析报告
- 案例中哪些模型可以支持类名及字段?(张三 20230001)
在本案例中,可以识别出以下类和对应的字段:
Student类(学生类)
字段:
name (String) - 学生姓名
age (int) - 学生年龄
gender (String) - 学生性别
id (String) - 学号
major (String) - 专业
gpa (double) - 平均绩点
StudentManagementSystem类(学生管理系统类)
字段:
students (List
Main类(主程序类)
字段:无显式字段,主要负责程序流程控制
说明:Student类封装了学生的基本属性,StudentManagementSystem类负责管理学生集合,Main类作为程序入口点。
- 案例中的setter/getter模式与封装性(李四 20230002)
什么是setter/getter?
Setter和Getter是面向对象编程中用于访问和修改私有字段的公共方法。Setter用于设置字段值,Getter用于获取字段值。
有什么用?
封装性:保护类的内部数据,防止外部直接访问和修改
数据验证:可以在setter方法中添加数据验证逻辑
灵活性:可以在不改变外部接口的情况下修改内部实现
访问控制:可以设置只读(只有getter)或只写(只有setter)属性
怎么自动生成?
在主流IDE中可以通过以下方式自动生成:
Eclipse/STS:右键 → Source → Generate Getters and Setters
IntelliJ IDEA:Alt + Insert → Getter and Setter
VS Code:安装Java扩展后使用快捷键或右键菜单
代码示例(来自Student类):
java
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
- 案例中某些类的toString方法(王五 20230003)
简述toString方法有什么用?
toString()方法用于返回对象的字符串表示形式,主要用于:
调试和日志输出
控制台显示对象信息
字符串拼接时自动调用
toString一般应包含什么内容?
通常应包含对象的所有重要字段信息,便于识别对象状态。
toString方法从哪里来?
默认从Object类继承
可以重写(override)以提供更有意义的字符串表示
代码示例(Student类的toString方法):
java
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age +
", gender='" + gender + '\'' +
", id='" + id + '\'' +
", major='" + major + '\'' +
", gpa=" + gpa +
'}';
}
- 案例中几个常用方法解析(赵六 20230004)
构造方法
类名:Student
构造方法名:Student
参数:(String name, int age, String gender, String id, String major, double gpa)
功能描述:创建Student对象并初始化所有字段
业务方法
类名:StudentManagementSystem
方法签名:addStudent(Student student)
功能描述:向学生列表中添加新学生
返回参数:void
类名:StudentManagementSystem
方法签名:searchByName(String name)
功能描述:根据姓名搜索学生
返回参数:List
类名:StudentManagementSystem
方法签名:removeStudent(Student student)
功能描述:从学生列表中移除指定学生
返回参数:void
- 案例中的面向对象设计(孙七 20230005)
5.1 语法框架中的名词与动词分析
名词(可能成为类):
学生(Student)
管理系统(ManagementSystem)
姓名(name)
学号(id)
专业(major)
GPA(gpa)
年龄(age)
性别(gender)
动词(可能成为方法):
添加(add)
移除(remove)
搜索(search)
显示(show/display)
获取(get)
5.2 类设计分析
如果重新设计,我会抽象出以下类:
Student类
功能:
存储学生基本信息
提供字段的getter/setter方法
重写toString方法用于信息展示
StudentManagementSystem类
功能:
管理学生集合(增删改查)
提供多种搜索方式(按姓名、专业、GPA)
维护数据一致性
StudentService类(可扩展)
功能:
处理复杂的业务逻辑
数据验证
异常处理
Main类
功能:
程序入口
用户交互界面
菜单驱动功能调用
设计优势:
单一职责原则:每个类只负责特定功能
高内聚低耦合:类之间职责清晰,依赖合理
易于扩展:可以轻松添加新功能而不影响现有代码
浙公网安备 33010602011771号