oop总结以及相关心得

卓沁文-zc061011 2025-11-09 22:29:09

作业架构

  1. 核心实体类
    Adventure:冒险者核心类,包含属性和行为
    物品管理:getbot:拥有的药水,getequ:拥有的装备
    botbag:携带的药水,equbag:携带的装备,arm:当前装备的盔甲,wea:当前装备的武器
    关系管理:通过employer和subordinates维护关系树状图
    战斗和援助:triggerAidEvent:触发援助事件,triggerSubordinatesAid:递归调用下属援助
  2. 物品相关
    Item:所有物品的抽象父类,封装id和iscarried
    Bottle:药水抽象类,子类包括Hpbot,Atkbot,Defbot,Manabot
    Equipment:装备抽象类,包含ce,子类分为Armour,Weapon,Weapon派生出Sword和Magicbook
    Spell:法术抽象类,包含manacost,power,子类实现cast,子类有Atkspell,Healspell
  3. 工具类
  • Controller:处理所有指令(我从main里移植的)
    aa:创建冒险者
    ab:添加药水
    ae:添加装备
    ls:添加法术
    ri:移除物品
    ti:携带物品
    use:使用物品法术
    bi:购买物品
    fight,fight1,fight2,fight3:战斗,但是一个方法有行数限制所以拆分
    find:查找冒险者
    findUsableItem:查找可使用的物品
  • Factory:工厂
    creatBottle:创建药水
    creatEquipment:创建装备
    creatSpell:创建法术
    creatItem:统一创建物品,包括药水和装备

迭代相关

  1. 第二次作业
    初步架构了冒险者世界的部分功能,adventure,bottle,spell
    第一次创建这么多文件放在src底下,而不是c语言所有代码都塞在一个文件里不太习惯
    但是很快发现这样拆分的方便之处
  2. 第三次作业
    给冒险者添加了属性,以及细分bottle
  3. 第五次作业
    对背包详细完善,需要区分携带和拥有的概念
    以及加入战斗系统,细分装备类型,使用了工厂模式
    这一部分的物品以及自己写在src里的各种函数名非常复杂,物品的关系也是,所以在写之前需要详细理解指导书,否则会犯很多错误(读题的重要性!!!)
  4. 第六次作业
    添加了雇佣关系,需要在战斗时利用递归确立两人的上下级关系
    我上级的上级也是我的上级!!!此时也需要参与战斗援助
  5. 第七次作业
    通过递归添加多人的关系图,非常复杂,有点像c语言带括号的四则运算

使用JUnit的心得体会

起先文件还小的时候觉得,还要在src好不容易写完后写这么多测试方法非常麻烦
之后确实依靠简单的测试方法测试出了一些难以找出的错误
可以有强针对性的对某种方法写测试文件,将错误快速定位

oop的心得

java的面向对象与c语言的面向过程非常不一样,主要体现在java会针对每种对象写出不同的文件,以及还有继承这一方法,使文件架构更加清晰明了,而c只有写出多个函数,用以减少main的字数
感觉java这样的形式更方便日后迭代升级

建议

有时候指导书实在是太长了,需要看特别久,等我看到题目,理解先前教学的到底有何意义时以及忘得差不多了,更希望先精简的写出题目,这样也会引发自主思考,再给出相关方法,可以通过什么实现要求。也不一定要给教程,可以鼓励上网自学
checkstye有时候非常莫名其妙,比如一个方法不允许超过60行(我最常见的错误点),导致我的架构本来很清晰,却不得不拆分的零零散散,徒增烦恼

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

271

社区成员

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

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