oo第一次总结

  oo课程的恐怖之处早有耳闻,听前辈们说课程使用的是JAVA语言,但是本身认知里的JAVA仅仅停留在那杯冒着热气的咖啡上,连基本的语法都不会,怎么去面对oo呢?因此第一周就上网找了mooc视频,学习一些基础的东西。但是有些东西,光光掌握语法确定是不够的,所谓面向对象课程,想教给咱们天然是面向对象的编程方法。三次做业中,虽然用的是JAVA,但代码的字里行间,赫然是披着JAVA外衣的C。由于不熟悉JAVA的函数库(感受函数也是C的概念,JAVA里该叫方法了吧),不少时候编程的思惟局限在C的套路上,有时本身想了好久也不知道如何解决的过程,后来惊喜地发现JAVA里有现成的方法。正则表达式

 第一次做业

  第一次做业仍是比较简单的,关键在于匹配输入模式以及提取关键信息。根据mooc里的善意提醒,咱们纷纷选择了使用正则表达式进行输入的匹配。比起状态机的实现方式,正则表达式很简洁。但忽略了输入过长致使的爆栈使得公测点最后一个未经过。回头再看mooc,其实视屏中前辈们有提醒爆栈的问题,只是本身选择性的忽视了。而此外,第一次做业其实就是流程化的C,训练目的想让咱们体会的C和JAVA的区别除了感受eclipse编译器更好用以外,彷佛并未发现语言的大的差别。第一次做业互测分配给个人代码给我以一种特别高大上的感受,在我还停留于和语法做斗争的时候,别人已经想着如何使本身的代码更加的模块化,我仔细地看了别人的代码,这才感受到,JAVA是一种面向对象的语言,第一次课所想让咱们学习的,在别人的代码里,看到了。可见这样的互测虽引发你们的一些情绪,但所带来的好处,也是相对存在的...编程

 第二次做业

  第二次做业就是电梯系列的第一关,傻瓜电梯,其实实现这样一部电梯并不难,但这一次是严格要求面向对象的编程,好在第一次做业看了其余同窗的代码后对面向对象这个概念有了浅薄的理解,再联系C++面向对象的思想,也算是可以完成,但我发现,这一次比做业比第一次做业的难度的提升,其实最体如今对于指导书的理解,甚至我码代码的时间尚未看指导书的时间长(不包括debug)。指导书里有了更多地要求,也有了更多地自由区域要求咱们在ReadMe文档中给出本身的设计想法。做业要求的五个类中,楼层类并未产生实际效用,后来老师讲解的时候说可能有的楼层电梯就是没法使用(好比在维护),这样更贴近生活实际,让咱们恍然大悟。第二次做业的难点我的以为在于如何判断同质请求,可是只要老老实实的从头遍历请求队列,时间上会变慢,可是不会产生bug,此外须要考虑一些异常好比时间超出int范围,能够经过把字符串转化为int时抓取错误来避免crash。eclipse

第三次做业

  第三次做业是在第二次的基础上增长一个捎带功能,其实若是单单只是实现这样一个功能并不复杂,只须要在第二次做业的schedule的基础上增长一些规则就能够,可是我发现增长了这样的功能后会致使原本能够执行的请求变成同质请求,也有可能会把原本同质的请求变得可执行。因而在每次变动主请求只有再要进行行的同质判断,遍历请求队列,时间上编的复杂,不知道有没有好的方法能够简化这一步骤。而这一次对指导书的输出理解的不到位,致使输出差了括号,很惋惜。从上图能够看出个人ask类实现的功能太多,俨然一个上帝类,这是不可取的。可见我对面向对象的编程方法理解不到位。其他都与做业二的电梯大同小异,再也不赘述。模块化

找bug方法

一、用本身的测试样例跑一边,若出现本身出现过的错误,能够很轻松判断bug的一些可能缘由;函数

二、看代码中的错误,好比正则表达式能够经过看对方的表达式,来判断那些输入可能致使错误;学习

三、参考readme,对其所描述的实现功能进行测试,看是否有误;也能够看哪些可能的请求对方未考虑到;测试

四、进行边界测试;spa

五、对本身没有给出的测试,对照bug树,考虑是否添加测试。debug

小结

  总的来讲三次做业的难度仍是蛮够的,其实,最关键的我我的认为仍是对参考书的理解,磨刀不误砍柴工。上来就开始敲代码最后确定会发现有许多地方不符合要求(第三次做业的教训)。利用好时间很重要,拖延症万万要不得。最后仍是要说,前三次做业的主要目的,感受仍是让咱们理解什么是面向对象,面向对象的优势在哪;以及帮助咱们这些无JAVA基础的人渐渐熟悉JAVA,往后的学习中,一方面,我要深刻的去理解面向对象的方法,还有就是要熟练掌握JAVA语言,不能建空中楼阁,空能谈方法,一上手就不行是没有用的。设计

  面对这三次做业,已经尘埃落定。不管好坏与否,未来的学习生活中,应当调整心态,继续前行。

相关文章
相关标签/搜索