做为一个面向对象编程的小白,这三次做业对于我来讲难度其实很是大。所幸,OO教务组合理地安排做业让我这个小白也能逐渐接受这一切。正则表达式
第一次做业分析:算法
因为是首次使用Java语言编写面向对象程序,所以本次做业写得并不理想。事实上,也正是由于第一次的缘由,致使个人代码充满了面向过程的感受,并无很好的将表达式类的属性进行封装。于是在DEBUG阶段形成了很大的麻烦。编程
纵观第一次做业,主要的bug出如今两个地方:其一,使用正则表达式时,没有考虑当输入的表达式过长时,致使爆栈,从而使得程序crash。其二,未能准确理解指导书中对数字范围的定义。从这两点让我意识到仔细阅读理解指导书的重要意义。测试
第二次做业分析:设计
在有了第一次的开发经验以后,第二次的做业便好了许多。因为指导书已经对每个类以及其属性都说明的很清楚,所以这次开发的难度并非很高。惟一须要注意的一点就是当请求队列非空的时候,须要判断先后的请求发起时间来肯定新的请求是否可以入队,不然会出现错误。3d
第三次做业分析:对象
第三次做业是在第二次做业的傻瓜调度上新增了“捎带”的功能。因为捎带功能的出现,每进行一次捎带,会使得电梯运行的时间增长,于是会致使新的同质请求出现。个人程序只考虑到了本来的同质请求,没有考虑因为“捎带”而致使电梯运行的时间,从而使得本来在傻瓜调度的电梯系统中非同质的请求变为了新的同质请求,这使得个人程序出现了错误。在算法的设计上,我应该改成每次将主请求及其捎带入队以后,计算运行时间,而且根据这个运行时间,将本来的请求队列遍历,删除新出现的同质请求,这样才能保证运行完主请求后,不会出现新的同质请求。blog
关于测试样例方面,个人测试样例是主要针对于边界状况的测试。我我的认为通常能正确跑出结果的程序,通常的测试样例都能正确,所以主要针对边界状况进行测试便可。队列
不知不觉已经作完3次OO的做业了,能够说,这几回做业绝对是“拖延症”患者的噩梦。若是像从前面对计组那样,总将做业拖到deadline前一天才开始动工的话,绝对是自讨苦吃的行为。每次拿到指导书的时候,我认为有必要花费一成天的时间仔细思考这次任务的要求,规划设计方案,明确每一个类的属性以及方法。若是一开始便可以合理设计每一个类及其方法,那么出现bug的时候,便可以很快地找到bug出现的缘由而且进行修改。开发
OO之旅已然过去四分之一,望诸君且行且珍惜,切莫放弃!