北航2023秋oopre课程总结

闫东顺-22371169 学生 2023-11-05 21:54:14

**北航2023秋oopre课程总结 **

架构设计

架构图

img

src目录

img

本人通过Main类进行顶层设计,而Advendure类负责重要的内容处理,Bag和Shop类各司其职,底层有装备,药水瓶,食物等类。各个类之间充分封装,所有变量均用private保护并设置了访问方法。
最后一次作业适当重构了Adventure类里的remove方法
通过在雇佣者的Adventure类里overattack()方法加入相关判定并调用被雇佣者的givemoney()方法实现支援系统
通过Bag类调用背包主人master的remove()方法实现指令22
通过Main类直接调用Shop类里的trytobuy()方法实现指令23

迭代方法

本人在背包概念引入后即设置了Bag类,并在战斗模式引入后设置了Dayattack类。各个类之间的有序配合满足了面向对象原则、单一责任原则,极大地提高了代码的可扩展性,降低了维护难度。
比如在实现hw7的type22指令时,本人直接在Bag类里新增了sellall()方法

    public void sellall(Shop shop) {
        long ret = 0;
        for (Integer key : listbtt.keySet()) {
            removeInt.add(key);
        }
        for (Integer key: removeInt) {
            master.remove_bottle(listbtt.get(key).getID(),shop,false);
        }
         removeInt.clear();
        for (String key:listedu.keySet()) {
            removeStr.add(key);
        }
        for (String key:removeStr) {
            master.remove_equ(listedu.get(key).getEquID(),shop,false);
        }
        removeStr.clear();
        for (Integer key: listfood.keySet()) {
             removeInt.add(key);
        }
        for (Integer key: removeInt) {
            master.remove_food(listfood.get(key).getFoodID(),shop,false);
        }
         removeInt.clear();
    }

使用junit的心得体会

写好junit单元测试时检验代码可靠性的重要方法,也是进行团队写作的必备技能,其价值远不止是完成一个测试点,而是提高了代码人的综合素养!!!

学习oopre的心得体会

从面向过程到面向对象

c语言是面向过程的,Java是面向对象的,一开始并不是很能理解面向对象的含义,经常在代码里新new了许多对象还以为它们是同一个对象(悲),但是之后再de这些bug的过程中,我逐渐发掘了类和对象的区别,就像搞明白地址和变量的区别一样。

Java的便利

Java的基本语法和c没什么区别,但是Java有许多超级便利的库方法,这就使得用Java处理链表等数据结构比用c些简单的多!

老师和助教的认真负责

吴老师上课真的好认真,课件很好,讲到激动还会热情地写板书哈哈哈。助教们真的很辛苦,不仅要回答这么多学生的问题,还要做复杂的数据库测试点,真的很感动。

对oopre课程的简单建议

我感觉这门课程很好,没有oopre都没法想象我该怎么去上oo正课……建议的话感觉可以教学生怎么造测评机,并在测试点里面假如对测评机的测试。

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

242

社区成员

发帖
与我相关
我的任务
社区描述
2023年北航面向对象程序先导
学习 高校
社区管理员
  • YannaZhang
  • CajZella
  • C_ecelia
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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