OO最后总结

oo最后总结 新键盘第一写献给我最爱的oo

  不知不觉火车到站了,经历了17周辛苦的学习,终于把oo课“熬完了”这其中有周五熬夜debug周六拼命赶ddl的艰辛也有从周一发下来指导书一脸懵看了好几天还是懵懵的状态的崩溃但是也有一遍过中测的喜悦以及和同学们探讨出优化方法的激动总的来说一分耕耘一分收获oo带给我的远不仅仅是课程的分数更是对面向对象思想的全面理解对写代码能力的提升

  第一单元对我来说是崩溃的假期没咋预习对于java都一知半解别说一种新的编程思想面向对象的加入了然后还有点不到黄河不死心在周四研讨课提供的思路指引下我并没有改变我的代码反而还是用大正则一条路跑到黑也不用说评测了这样写bug真的太多了),也没有理解面向对象的思想还是通过面向过程的角度编程第二次作业进行了重构但是是对算法的重构转换成递归下降的方法对表达式进行处理第三次作业由于复杂性提高我又比较偷懒出现了超级大的hashmap进行存储并没有很好的进行层次化分析总的来说虽然第一单元都过了中测最后代码的正确度也还不错但是就像吴老师所说虽然种出了粮食但是种的方法并没有体现出面向对象的思想但是对于假期没预习且平时还老是偷懒的我也算是不错的成绩

特此提醒一定要做假期预习

  第二单元是电梯一个从前几届流传下来的噩梦一般的词上天入地无所不能的电梯也出现在我的程序中但是这次我学聪明了在开始写代码前阅读了大量的往届代码然后思考自己的架构应该如何设计所以第二单元的整体设计还不错至少画uml类图的时候不会很无从下手第二单元主要要处理好多线程问题要仔细思考什么时候会发生冲突导致线程不安全会不会导致cpu轮询对于电梯的算法其实并没有很难采用look算法等等第三单元加入了一个流水线的模式可以选择动态对请求进行处理本次作业用到了工厂模式流水线模式单例模式也算体现了一定的设计模式同时架构方面体现了层次化相对于第一单元有很大的进步

  第三单元主要是对JML语言的学习官方提供JML描述的语言然后根据JML写代码总的来说还是比较简单的需要注意的是JML是一种语言规范具体用什么进行实现还是需要自己从性能等角度进行出发这一单元感觉难点就在于测试少量的代码可能看不出来bug但是大量代码的投入比如评测机可以很好的帮助发现bug特别感谢xhgg互测卡的点主要是时间复杂度然后因为大体的框架官方已经写好了自己需要补充的主要是如何实现JML语言比如图的一些算法存储结构的设计

  第四单元是对UML的学习包括类图时序图状态图等需要做的是对UML的解析比如类的统计继承深度等等UML其实就体现了面向对象的思想具有很好的层次化很好的提升我们对面向对象思想的理解实现起来也不是很麻烦比如对于类图可以设计一个UMLCLASS其中保存了UMLATTRIBUTE以及UMLOPERATION万物皆是对象每一个元素可以作为我们的一个对象我们需要管理其中的属性以及方法最后这个单元可以说可以很好的对我们面向对象的理解进行一次升华了

  至此对于四个单元的介绍完毕

我的收获

  1、写代码能力大大提升大一的c语言以及数据结构大作业也就百十行解决而这次每个单元的作业都得上千行的代码大大提升了写代码的能力

  2、对面向对象思想的掌握转变了从前只会进行面向过程的编程在写代码之前对架构有一定的设计现有架构再有代码

  3、算法的掌握第一单元的递归下降处理字符串第二单元的的多线程对于操作系统的学习有很大的帮助第三单元的JML的学习第四单元UML的学习

  4、坚强的意志力以及对美好生活的向往不要放弃最后一小时又可能会有意想不到的奇迹发生也不要过于自信不要太相信自己的写代码能力bug无处不在

意见和建议

  其实虽然感觉后两个单元相对来说简单但是应该是我们有了前几个单元的基础下才会觉得做起来得心应手所以虽然第一单元很折磨但是可以迅速让我们回到学习的状态别的系前两周基本没啥事),可以让我们迅速提高对oo的敬畏虽然可能菜鸡如我还是不能短时间内体会到面向对象的设计思想但是这么安排有很高的合理性给课程组点赞

改进

  1. 指导书更加明朗比如最后一单元有些地方就不太理解有的地方可以用更加通俗的方式进行表述
  2. 合理分配时间,比如这学期会空闲一周可以将空闲的一周分配到压力大的第一单元可以很好的缓解压力
  3. 在课程开始之前大力超大力强调预习的重要性

 

posted @ 2022-06-21 18:16  tianrunrun  阅读(46)  评论(0编辑  收藏  举报