面向对象的第一阶段学习小结
前言:本文主要对于面向对象的第一阶段的学习(主要是作业)进行阶段性总结。第一阶段的三次作业从结果上来说都是圆满的完成,通过这一阶段的学习本人对于面向对象的程序设计也有了一定的了解。
作业过程总结:首先,第一次作业主要是一些基本语法的熟悉、一些输入输出的调用和基本数据类型的了解与使用,内容较为简单,涉及的算法设计较为基础,主要练习的还是方法的调用;第二次作业主要是在第一次作业的基础上对于输入有了一定要求,要实现输入检测功能,总体上还是基础算法的设计和方法的调用,还有就是方法的复用性得到了体现;前两次作业在面向对象这一属性上表现的并不明显,相较于前两次作业,第三次作业对于面向对象的程序设计有了一定要求,对于日期这一对象进行了面向对象的编程,对其中的year、month、day都进行了面向对象的处理。然后,在做作业的过程当中,最开始的设计都是面向过程的,代码的复用性基本为0。随着作业的进行,我对于对象的理解逐步加深,主要是在日期的计算(即第三次作业)中深有体会,学会了从对象的角度来思考。在做作业的过程中遇到了一些的问题,最开始的时候是连怎么从键盘输入都不知道,还有后面的一些格式转换之类的问题,像这些比较基础的问题主要是通过百度、CSDN这样的方式解决的。到后面的话就是一些方法设计和对象设计的问题,这些问题我是通过不断地看书、打代码和优化代码去慢慢解决的。在作业花费的时间比重方面,第一次和第二次作业都很快完成,大概小半个下午时间就解决了,第三次作业花了比较长的时间,用了2天去优化代码,去摆脱面向过程的想法。对于编程过程的严谨性的话还好,因为在acm打比赛的关系,对于代码的严谨性还有测试点之类的会相对敏感和注意。
设计心得:面向过程的设计代码敲起来会比较快,但是如果要修改就会比较麻烦,可能会有牵一发而动全身的那种影响。面向对象的设计主要还是想起来比较难,(可能是因为熟练度不够的关系)对于对象的封闭性还有相关方法的设计比较难想到,但是设计好了之后改起来很方便。对于编程思维我认为不管用什么方式编程都要对于需求有清楚了认识,根据需求来对整个设计的流程、模块进行规划,最好画个流程图UML之类的。如果是面向对象的设计我认为对象本身很重要,对于对象的属性、方法一定要有大概的认知,对象的独立性、封闭性要能得以体现,还有对象之间的关系要搞清楚,不能出现对象、方法、属性上的冗余。还有代码的优化也很重要,有时候码量一大自己找起来改起来都很麻烦,所以要尽量避免冗余,设计的时候对于能够复用的方法要单独编写,然后要写注释。
测试的理解和实践:测试对于代码来说是至关重要的,代码功能和稳定性的检测都需要靠测试来实现。代码不仅仅要完成对需求的功能上的实现,还应该对特殊情况给予处理,要能在各种情况下提供反馈。我们编写代码是功能上的实现,但是功能的实用性、稳定性、还有在其他因素影响下的可执行性都需要通过测试来调试。只有能通过数据的测试,代码才算完整。如果让我设计测试用例的话,可能我会考虑一些边界测试点、非法输入、精度问题和数据类型等情况
课程收获:学习面向对象的程序设计以来,最大的收获就是面向对象的思考设计方式,学会了使用对象来对问题进行分析,对于对象这一结构的认识越来越清楚,使用起来也越来越顺畅。对于代码的复用性的理解也比以前加深了,在代码的优化方面也有所长进。教训的话就是可能刚开始不能很好的适应面向对象的程序设计,写的代码很糙,自己读起来更改起来都很麻烦。
课程建议:就目前老师上课的效果我感觉很好,在讲每个面向对象设计的思想和性质的时候都会有相关的问题给我们思考,至于建议的话就是上课的时候其实不用空时间给我们打代码,毕竟现在在家很闲,课后有很多时间打代码。
浙公网安备 33010602011771号