学习OOpre的心得体会

朱紫豪-24371322 2025-11-05 00:05:21

OOpre的总结与反思

作业最终架构设计

  • 1.main没有具体作用,仅仅用于读入数据
  • 2.command用于读入main中数据,将main中数据一行行分离并根据每行区分具体是什么指令,进而执行相应效果
    这个是在第三次迭代后引入的,为了解决main过长的问题
  • 3.Adventurer包含各类冒险者的信息,以及各类对冒险者进行行为的函数,如战斗,购物等
    几乎没有怎么重构,就是每次添加冒险者的新的行为就多创建一个函数,如雇佣就创建employer,购物就创建buy
  • 4.Bottle类包含各类药水的信息,用于区分不同种类,是否携带等,对药水进行相应的操作
    在第三次迭代中添加了不同种类
    后续第五次迭代引入了背包,又添加了是否携带的属性
  • 5.Spell类包含各类咒语的信息,几乎与Bottle相同
    几乎没怎么迭代
  • 6.Equipment包含装备信息,区分种类,是否携带,丢弃等
    装备系统引入后进行了一次大改
    添加了不同装备的种类,装备是否携带,装备提升的属性,攻击方式等

  • 我似乎并没有用到太多子类型等相关的方法,而是把manabottle,hitpointbottle等当作bottle的一个属性,在具体函数使用时再进行判断。

项目架构图如下:

架构图


使用Junit的心得体会

  • 第一次使用Junit,感觉还是很好上手的,但感觉略显麻烦,因为要覆盖的比较全面,就要设置很多测试点,把所有情况尽可能的覆盖的。
  • 感觉Junit编写的难易度和源代码结构的清晰度是挂钩的,清晰的源代码有利于你区分不同条件,然后可以更轻松的找到各个不同的情况吧,覆盖面会比较全。
  • 一开始我以为要提高方法的覆盖率就要给每一个方法都写一个@Test,但后来发现不是这样,只要你的方法在实现你的某个数据点时调用了,就会被覆盖
  • Junit十分有用,在deBug,提高正确率等发挥了极大作用

学习OOpre的心得体会

  • 对于Java零基础的小白来说,OOpre无疑是十分重要的,我初步了解了Java代码的构建形式,为我后来学习正课打下了坚实的基础。
  • 首先就是代码的模块化十分重要,不同的函数负责不同的功能,各司其职,这样便于维护也不太容易出错。
  • 其次就是要学会对代码进行精简,我一开始总是写的很长,有一些无用的语句,导致代码冗余且可读性降低。采用合适的方法精简语言才能有效地促进代码能力的提高
  • 编程过程中还是要细心,许多不必要的bug总是会因为一时的失误而产生。所以编程时全神贯注无疑是非常重要的。我个人就比较粗心,总是出现这样那样的小错误,日后编程必须注意。
  • 最重要的就是debug和测试代码的编写,用Junit来debug十分好用,提高编码效率的同时,也能让我在努力提高覆盖率的过程中深化自己对代码的理解

对课程的简单建议

  • 首先是希望可以多一些对Java基本语法的讲解。我认为多次迭代下来压力最大的反倒是第一次,因为本人是第一次接触Java,许多类,方法等最基本的知识都要现学,运用b站的资源和大模型才好不容易入门,希望学校能加强引导。
  • 其次就是希望能适当的改善测试时的反馈,少了一行输出debug就很痛苦

...全文
72 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

309

社区成员

发帖
与我相关
我的任务
社区描述
2026年北航面向对象设计与构造
java 高校
社区管理员
  • 孙琦航
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧