项目案例作业2:对案例进行面向对象分析

一. 案例中体现出的封装性及其好处

封装性:在该案例中,Student类封装了学生的姓名、年龄、性别、学号、专业和GPA等属性,而StudentManagementSystem类封装了对学生数据的增删改查等操作方法。

好处

1.将数据隐藏起来。通过封装将数据和实现细节隐藏起来,只对外提供公共方法访问数据,避免直接暴露数据给外部,从而保证数据的安全性和一致性。

2.简化使用。对外部用户来说,他们只关心如何使用我们提供的公共接口,而不需要关心内部是如何实现的。

3.减少耦合:通过封装,系统的内部实现可以随时变化而不影响外部的使用,降低了模块之间的耦合度,提高了代码的可维护性和扩展性。

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

案例中的Student类通过提供setter和getter方法来访问和修改私有属性,例如setName()和getName()方法用于设置和获取学生的姓名。这种setter和getter模式是封装性的一种体现,通过Student的setter和getter实现了对私有属性修改访问

三. 案例中某些类的toString()方法
简述toString()方法从哪里来?toString方法有什么用?toString一般应包含什么内容?

toString()方法来自于Object类,所有的类都直接或者间接的继承了Object类,因此也继承toString()方法。

toString()方法的作用是返回一个表示该对象字符串,常用于输出对象的信息

通常情况下,toString()方法应该包含该对象中所有重要的信息,以便能够完整地描述该对象。在该案例中,Student类的toString()方法返回了学生的姓名、年龄、性别、学号、专业和GPA等信息。

四. 案例中常见的工具类
简述案例代码中使用了哪些工具类

案例中使用了Scanner工具类来获取用户的输入。Scanner类是Java提供的一个工具类,用于从标准输入流中读取数据。

五. 案例中的面向对象设计


5.1 尝试用一段话描述案例所解决的问题。找到其中的名词与动词。

该系统可以用来对学生信息进行管理查询

可以添加学生:用户可以输入学生的姓名年龄性别学号专业GPA信息,将学生添加到系统中。

可以删除学生:用户可以根据学号来定位学生,并从系统中删除对应的学生记录。

可以查询学生:用户可以通过学号、姓名、专业信息来查找指定学生的详细信息,包括姓名、年龄、性别、学号、专业和GPA等。

可以展示所有学生:用户可以获取系统中所有学生的信息列表

名词:学生、姓名、年龄、性别、学号、专业和GPA。

动词:添加、删除、查询、展示。


5.2 如果让你设计,根据上面的分析你会抽象出什么类?各具备什么功能?

Student类:

在该系统中,以学生类作为抽象类,可以作为其他相关类(如班干部类、普通学生类)的基类,实现代码的重用和模块化。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值