#2023-2024-1 20231408《计算机基础与程序设计》第八周学习总结

作业信息

这个作业属于哪个课程 <2023-2024-1-计算机基础与程序设计>
这个作业要求在哪里 <2023-2024-1计算机基础与程序设计第八周作业>
这个作业的目标 < 《计算机科学概论》第九章,《C语言程序设计》第七章,上周测试题>
作业正文 https://www.cnblogs.com/jfxyh061028/p/17842398.html

教材学习内容总结

  • 什么是面向对象的设计,设计方法是什么
  • 把高级语言翻译成机器码的编译器和解释器。
  • 程序设计语言的几种范型(我理解的就是几种模式)
  • 概述一下高级语言的几种结构,和相应的伪代码怎么写。

教材学习中的问题和解决过程

  • 问题1:怎么设计责任?或者说怎么给类分配责任?
  • 解决方案:当给每个类分配责任时,给每个类分配责任通常可以遵循以下步骤:
  1. 确定每个类的职责和功能:首先,需要明确每个类的目的和功能,以及它们在系统中的角色和职责。

  2. 单一职责原则:确保每个类只负责一项明确的功能或任务,这有助于提高代码的可维护性和可理解性。

  3. 类之间的关系:确定每个类之间的关系和依赖,以便确保它们之间的协作和通信。

  4. 设计模式:使用适当的设计模式来分配责任,例如工厂模式、观察者模式、策略模式等,以确保每个类都能够完成其特定的职责。

  5. 接口和抽象类:使用接口和抽象类来定义类的职责和行为,以便实现类之间的统一和灵活性。

  6. 协作和协调:确保每个类都能够与其他类协作和协调,以实现系统的整体功能和目标。

总的来说,给每个类分配责任需要通过合理的设计和规划,以确保每个类都能够承担适当的职责并与其他类协作,从而构建出一个高效、灵活和可维护的系统。
可以考虑以下三个具体实例:

  1. 用户类(User):

    • 负责管理用户的身份验证和授权。
    • 处理用户个人信息的存储和管理。
    • 提供用户与系统交互的接口,例如登录、注册、修改密码等功能。
  2. 订单类(Order):

    • 负责处理订单的创建、修改和取消。
    • 管理订单的支付和配送信息。
    • 提供订单状态查询和历史订单记录。
  3. 资源管理类(ResourceManager):

    • 负责管理系统中的各种资源,如内存、文件、网络连接等。
    • 提供资源的分配和回收功能,以确保资源的有效利用。
    • 处理资源的并发访问和争用情况,以确保系统的稳定性和性能。

在这些实例中,每个类都有明确的职责和功能,以及与其他类的协作和依赖关系,这有助于构建出一个清晰、高效的系统设计。

  • 问题2:封装是怎么实现的?
  • 解决方案:封装是面向对象编程中的一种重要概念,它指的是将类的内部数据和方法隐藏起来,只提供有限的接口供外部访问。这样做的目的是为了保护数据的安全性,防止外部直接对数据进行修改,同时也能够隐藏类的内部实现细节,提高代码的可维护性和灵活性。

通俗易懂地说,就好比我们乘坐电梯一样,我们只需要按下楼层按钮就能到达目的地,而不需要知道电梯内部是如何工作的。

以下是三个封装的实例:

  1. 银行账户类(BankAccount):

    • 将账户余额设置为私有属性,只能通过提供的存款和取款方法来修改账户余额,外部无法直接访问和修改。
    • 提供获取账户余额的公共方法,以便外部能够查询账户信息。
  2. 车辆类(Vehicle):

    • 将车辆的引擎状态设置为私有属性,只能通过提供的启动和停止方法来控制引擎的状态,外部无法直接操作。
    • 提供获取车辆速度和方向的公共方法,以便外部能够获取车辆的状态信息。
  3. 餐厅菜单类(Menu):

    • 将菜单项列表设置为私有属性,只能通过提供的添加菜品和删除菜品的方法来修改菜单内容,外部无法直接修改。
    • 提供获取菜单内容的公共方法,以便外部能够查看菜单的信息。

在这些实例中,封装通过将类的内部数据和方法进行私有化,只暴露必要的接口给外部使用,以确保数据的安全性和保护类的内部实现细节。

上周考试错题总结




总的来说,知识掌握的有不准确的地方,所以错了。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时 优秀
第一周 2/3 20/20 合格
第二周 20/20 1/4 15/35 终于理解了一些概念,能看懂一些话了
第三周 20/40 1/5 20/55
第四周 50 /90 2/7 20/75
第五周 80/170 1/8 30/105 会编写一些简单程序了
第六周 30/200 2/10 30/135 编程水平提升了
第七周 30/230 1/11 25/160 编程得更熟,也知道了计算机方面更多粗浅的知识。
第八周 60/290 1/12 30/190 对于高级语言的一致性有了认识。
posted @ 2023-11-19 21:43  20231408徐钰涵  阅读(5)  评论(0编辑  收藏  举报