buaa_oopre

本文讲述了作者从零开始学习JavaOOPRE的经历,包括初次接触类的概念、bug修复策略、类结构设计、Junit测试技巧以及对课程设置的建议。
摘要由CSDN通过智能技术生成

BUAA-oopre-总结

历时八周的oopre总算告一段落,本人在此之前完全没有Java相关基础,在大一程设与数据结构相关的课程的成绩也不够好,但是这八个周的课程让我能够在在一周之内写出200—300行有效的代码,下面将从时间的角度分析一下我的修复bug之路

我的代码思路结构如下图

在这里插入图片描述

其中 adventure类是冒险者,代码的主要部分在这里,冒险者的各种属性与变化主要放在这里,bag是背包,是每一个adventure都有一个属于自己的bag,在此储存各种物品,bottle为药水,下面各种药水是继承,同样equipment也是相同的属性,fightlog是日志,在其中储存一个字符串为日志,food为食物类,通过吃东西来改变各种状态,Store为商店种类,整个程序只允许出现一个Store类,prfight用来完整地处理日志,将日志类的相关处理方式全部都在prfight当中体现。

迭代中的相关问题

在第二次作业中由于是刚刚上手java,对于很多对象的概念认识不清,在学习c语言时,C语言是一个完全面向过程的编程语言,而且当时我掌握的唯一的编程语言刚上手时存在一定的难度,存在的主要问题是对于各种类的从属关系与逻辑关系不清,了解hashmap与arraylist相关的知识后并不会有更多的问题。第一次没出现什么bug,但是关于idea的使用积累了很多经验,将idea配置成了自己喜欢的模式(很难想象没有代码补全要怎么手敲这么大段的代码

第三次作业是迭代的开始,随着逻辑的复杂与代码量的增加,bug也开始成指数增加,开始我并未理解甚至是并不了解深克隆与浅克隆的区别,所以导致在删除冒险者中的相关物品后没删除,本节的重点主要是如何创建一个bag类并且怎么在每一个adventure类当中引入一个bag类并成功实现bag类中的操作。也算是第一次真正意义上开始了解面向对象中对象的层次化的感觉。
第四次作业主要是涉及到各种字符串的操作与正则表达式的应用,字符串操作问题并不大,某些软件或者百度的文心一言已经能够非常好的写出你所期望的正则表达式,但是在正则表达式匹配过程当中注意必须要先进行find才能再进行各种相关操作,这个问题在笔者写junit的过程中出现了好多次bug。在本次作业中应该新加一个fightlog类,但是一开始并没有这种对象的概念,只是在main里面傻乎乎地一直处理,导致写了好长的代码最后完全报废,重新设计架构,对于自己的整个结构进行重构,
第六次作业开始涉及继承与接口的概念,讲句实话,在整个oopre中我并没有非常好地掌握这两个概念,写出来的相关代码也只是能做到刚刚可以跑,但是关于价值体的相关接口确实让我省了好大的力气来不需要将三种物品全部进行各种相关操作,初学者或许可以更加深入地了解这两种思想中的奥妙。
第七次作业开始设计各种模式,因为实现功能相对简单,工厂模式与观察者模式并未单独作为一类,但是商店这个类全局唯一的属性还是让我见识到了更多新建类的方法。

junit测试写法

在整个书写测试过程中最直观的体会便是尽量减少一个函数的功能,让多个简单的函数实现一个复杂函数的功能,只有这样在进行样例测试的时候才方便进行测试的编写,同时也可以增加一些原本没有的功能来帮助测试的编写,比如说冒险者的钱,在正常函数编写过程中并没有什么直接的手段来改变,在冒险者中增加这一函数便可以改变钱来方便测试冒险者的钱不够吧钱多了等多种情况。同时在主程序编写中应该注意到各种越界的情况,防止在junit中出现访问空指针的情况。

课程建议

1.提高课程的学分,整个oopre课程任务偏大,但是一学分的课需要这么长时间总感觉有点不值(
2.课程资源共享:或许课程组可以分享更多的资源,一个完全的小白看指导书学习感觉还是比较吃力的,如果有其他方面的资源就更好了。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值