2025面向对象先导课学习总结

李柯钰-24371182 2025-11-11 14:24:08

OOPre学习总结

 

作业最终的架构设计, 在迭代中的架构调整及考虑

作业最终的架构设计

 

 

迭代中架构调整

第一次迭代

第一次作业中只需要实现正确输入解析、添加冒险者、添加与删除相关物品。首先在main中进行输入解析,由于main中代码不能过长,故又用opera具体分析并执行每一条指令。之后建立了基础类:Adventurer 、Bottle、Equipment

第二次迭代

第二次迭代时,我们学习了继承、接口两大知识点。

首先继承,是很好理解的,也就是在一个父类下又有其他子类,如Bottle又需要分为Hp、Atk、Def、Mana四种类型,且它们类中的方法是几乎完全相同的,只需要直接再添加四个子类,在父类中添加方法即可。

其次接口,其实在我的java程序中是没有用到这个写法的。在我的理解中,接口是一系列方法的声明,其便利之处主要在于,可通过一个for循环,对接口下的所有类进行遍历,直接实现了对这些类中的某一方法的调用。但是在几次迭代中,我并没有找到可发挥接口便利之处的场景,添加之后反而可能使代码复杂化,所以并未使用。

所以在这次迭代中,我主要学习了继承的写法,增加了子类,以及Spell新功能。作业中要求的“背包系统”,由于此次判断携带并不复杂,所以未按此要求实现(但在之后作业里还是改成背包系统,嗯对还是应该早早听劝)

第三次迭代

此次迭代主要学习了“工厂模式”知识点,代码里增加了Factory以及上次懒得写的背包系统(em),以及其他一些为了实现新功能的改动,对总体架构没有大的影响。

好像就是从这次开始,交完中测必debug。哎。

第四次迭代

本次作业又介绍了“观察者模式”,依据此模式建立结盟关系、雇佣关系。在实现关于关系的指令功能时,使用递归进行上下级关系的判断,简洁且不易出错。仍无大的架构调整。

第五次迭代

学习递归下降的思想和方法,无大的架构调整。

 

使用JUnit的心得体会

JUnit即为单元测试,用于测试有效代码以及方法功能,在之后的实际开发中会更加有用的!

嗯……其实除了第一次是很认真地写,后来就开始直接塞输入数据了,有些许应付但真的大大减轻作业压力(对就是我梦拓教我的,就这样教我偷懒^^)

 

学习OOPre的心得体会

  • 写代码老是写一些莫名其妙的bug哈:包括但不限于输出少写空格(没招了),中间用来调试的打印代码没删(这素在。),返回两个东西但写成了一个东西(嗯大概就这个意思)……属实难绷,以后写完一定要通读一遍好好检查(实则不想读自己的屎山代码

  • IDEA你的自动补全真把人惯坏了。其实迭代到最后代码量还挺大的,但有一种只需要思考实现思路,完全不用想每行代码具体怎么写(直接补全再稍改改即可),缺少一种代码真是我自己敲出来的实感(自动补全功能非常实用高效伟大,只是觉得自己并没有熟练掌握java语言)

  • 当然了,还是学到了很多东西的。学习OOPre之前真的对“面向对象”这个概念很陌生,经过学习我知道了,对象就是某个类的具体实例,面向对象编程就是以对象作为核心来组织代码的。与面向过程编程相比,我认为面向对象是更易维护、更易扩展的(很难想象在C语言里进行迭代会是什么样子……)。尤其老师在第一节课中提到的三大特征:封装、继承、多态,在自己实现几次迭代后也能够理解其内涵、其优势。希望在今后的学习中能够更加灵活地运用、实现。

    想想刚开始完成迭代作业的时候,真的会觉得无从下手,不知道从哪里开始修改或添加。现在回过头来再看,会发现并没有那么困难,进步还是很大的~

     

对OOPre课程的简单建议(不多于两条)

对OOPre无意见,爵士毫克!

下学期的OO……求善待orz

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

270

社区成员

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

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