项目案例作业2

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

  1. 案例中哪些模型可以支持类名及字段?(张三 20230001)
    在本案例中,可以识别出以下类和对应的字段:

Student类(学生类)
字段:

name (String) - 学生姓名

age (int) - 学生年龄

gender (String) - 学生性别

id (String) - 学号

major (String) - 专业

gpa (double) - 平均绩点

StudentManagementSystem类(学生管理系统类)
字段:

students (List) - 存储学生对象的列表

Main类(主程序类)
字段:无显式字段,主要负责程序流程控制

说明:Student类封装了学生的基本属性,StudentManagementSystem类负责管理学生集合,Main类作为程序入口点。

  1. 案例中的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;
}
  1. 案例中某些类的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 +
            '}';
}
  1. 案例中几个常用方法解析(赵六 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

  1. 案例中的面向对象设计(孙七 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类
功能:
程序入口
用户交互界面
菜单驱动功能调用
设计优势:
单一职责原则:每个类只负责特定功能
高内聚低耦合:类之间职责清晰,依赖合理
易于扩展:可以轻松添加新功能而不影响现有代码

posted @ 2025-10-09 12:47  心誠則靈の  阅读(6)  评论(0)    收藏  举报