ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

OO最后总结

2022-06-21 18:36:51  阅读:127  来源: 互联网

标签:OO 总结 代码 最后 bug 面向对象 JML 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. 在课程开始之前,大力超大力强调预习的重要性。

 

标签:OO,总结,代码,最后,bug,面向对象,JML,oo,单元
来源: https://www.cnblogs.com/tianrunrun/p/16397864.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有