BUAA2023年秋OOPre课程个人小结

第一部分为整体代码设计

在代码第一次作业开发的时候,本人就意识到以后开发会出现地址取空的问题,也就是Hashmap在get(key)的时候报错,但当时数据不会出现也就没有再深究。但java对数据的操作全部为地址,这就导致bag的删除操作需要额外注意不能影响到adventurer本身的拥有。

所以我的解决方案便是adventure与bag分两个Hashmap,联系仅为作为第一关键字的key相同,在新增瓶子、食物和装备也是分开put(但这也间接导致了最后一次强测未通过。原因在于,Bottle新增变量isEmpty后,在携带瓶子时,想当然给其传入false而不是getisEmpty,导致冒险者拥有的瓶子同时为空而背包内携带瓶子为满的尴尬情况)。

对于op14则比较复杂,单独设置了FightLog操作类以及Log来保存。(这里本人又犯了一个错误,就是在involverList暂存结束后未及时清空,导致进入战斗模式的冒险者只增不减,闹了笑话)。

其余则是一些细节问题与一些判断,在此不一一列举了。

在debug时,我的个人习惯是在idea里面创建新Scratch File,因为idea会在左侧显示行数,这样就方便在代码对拍时快速定位自己第几条指令出现错误,缩小目标范围,节约debug时间。

另外令我没想到的是java也有浮点数转整数时少了1这样的情况,值得注意。

第二部分为junit使用体会

这里很惭愧由于当时图省事,直接将测试点数据拿来就用,以提高代码测试覆盖率为目的,一个测试大概有个四千行左右,没有起到使用junit应有的目的。

现在回头想想当时如果写一个方法就设置相应junit数据测试,会大大减少debug的时间,以及debug时的无力与迷茫。这也是我在OO正课需要改进的地方。

第三部分为学习体会

首先这门课的代码量是比较大的,这也给初次接触迭代开发的我们带来不少的压力。

其次收获主要在工具运用以及代码调试能力提升吧

第四部分为课程建议

在后面讲到接口时可以放宽一下ddl,多给一些时间进行代码重构吧

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值