OO第一单元(前四周)总结

            本次博客主要针对第一阶段作业进行总结。本阶段的作业一共有三次,其中包含题目共有十四道,每次作业之间都有着联系,难度逐次增加。本阶段作业起初两次完成度以及结果都还不错,到了第三次作业开始落后。所以自己对于JAVA还是有很大不足的地方,因而不仅需要按时按量完成布置的作业,还要在课外花费时间和精力,才能不断提高自己的能力。

一、作业过程总结

            1)、总结:

           1、第一次作业题目各不相同,但主要是计算类的题目,本次作业我觉得主要是为之后的作业做好一定的技术铺垫,了解并掌握一定的JAVA基础知识和语法功能。

           2、第二次作业以第一次作业为基础,同时为第三次作业做好铺垫。并且每道题目之间都有一定的关联,主要是日期类题目。

           3、第三次作业基于第二次作业更深一步,将第二次作业里关于日期的功能全部浓缩成一道题目,并且每道题目都是基于其中第二题开始拓展延伸,并开始引入聚合关系的构建。

            2)、如何通过作业逐步从面向过程过渡到面向对象:

                       由于之前学习了C语言,熟悉并习惯使用面对过程解决和思考问题,所以第一次作业有很明显的面对过程思想的痕迹,之后的作业开始要求引用类,并随着作业次数的增加内容的加深,类的使用越来越多,越来越频繁。并且类与类之间也开始不断地互相引用,并且开始了聚合关系的使用。

            3)、作业中遇到的问题和解决方法:

                       对于我而言代码的路上永远不缺少的就是问题了。

                       1、误将String类型输入用于输入char类型,然后我就上网查找,才最终了解错误地方并修改。

                       2、不清楚怎么输入一系列不知道元素数量的数组,并以0结束,查找资料才知道需要使用动态数组和相应的一些类,才顺利通过测试点。

                       3、第二次作业就是要注意一些限制,比如第一题的a不能为0,最后一题的n的正负值是具有不同含义的,主要就是第二题的求星期难度较大,但通过查资料还是可以解决。

                       4、不知道怎么求解两个日期的天数差,后来不断查资料不断尝试才实现了,不过还是无法通过一个测试点。

                       5、第三次的以类名为方法返回值的类型不知道怎么设置返回值,例如public DateUtil getPreviousNDays(int n);,不知道聚合关系之间的类怎么互相联系,之后通过上网看干货才慢慢理解。

            4)、每次作业花费的时间比例:

                       1、第一次作业难度不大,所以不到十个小时。

                       2、第二次作业难度也还行,依旧不到十小时,比第一次多一些。

                       3、第三次作业难度较大,所花甚多,有时一个测试点就要花费两三个小时,还不一定能过去。

            5)、对于编程过程的严谨性的认识和教训:

                       认知:严谨性是每个程序员都必不可少的元素。正所谓“谬以毫厘,差之千里”,对于程序员来说莫过于此。所谓的严谨性我认为应该是考虑问题的全面性,设计解决问题的思路,代码的规范性。

                       教训:第三次作业的测试点迟迟不能通过的原因之一就在于自己思考问题不能全面,不能严谨的思考问题要求什么。

二、OO设计心得

            1)、面向过程与面向对象的比较:

                       1、面向过程就是将步骤一步一步往下走,注重的是过程,维护性相对较低,但性能相对较高。

                       2、面向对象则是注重对象,注重功能化,全局观,主要的是把不同对象连接起来共同实现需要完成的功能或目的,由于是不同模块的聚合,所以维护性较高,但性能较低。

            2)、面向对象设计的基本原则:

                       据了解,面对对象设计大概有七个基本原则,但目前老师提及过得原则只有第一条,单一职责原则。我认为单一原则是分工要明确,每个对象只要做好本职,每个类只能执行相关职责,而不是互相牵扯,这样的好处我认为应该是为了提高代码性能和可维护性。

            3)、OO编程思维的理解:

                       目前我对于OO编程思维的理解是面对对象就是将功能模块化,每一个小功能即为一个对象一个类,然后把所有的类结合一起即完成了大功能。

三、测试的理解与实践

            1)、测试对于编码质量的重要性:

                       只有不断的进行测试最终才能检测出代码是否存在BUG,是否存在不符合需求的地方,也能通过测试了解到自己编码过程中的错误点。

            2)、假如让你设计测试用例,你会怎么做:

                   假如我来设计测试用例我会找一些特殊值,边界值,容易出现问题和错误的值来对代码进行测试,尽可能降低代码运行的错误,提高代码质量

四、课程总结

   1、面向对象不能和之前的面向过程一样来思考问题,应该将问题思考得更严谨,更通透。

   2、拿到题目后不能一来就开始写代码,而是应该先对题目要求进行方案设计,再根据设计进行写代码。

   3、需要更正之前的面向过程思想,要开始以面向对象思想来思考问题了。

   4、我也明白了写代码之前要认真看题,理解题意,设计方案,要勤奋一些,多花点课外时间来补充自己的不足。

五、对课程的建议

   1、我觉得应该稍微点拨一下PTA上的题目,不然不会的不就一直不会了。

   2、我觉得课程速度可以稍微慢一点点。

六、之后一阶段的学习计划

   1、要多向优秀的同学看齐,对于不会的知识点要多查资料,毕竟百度是个好东西。

   2、慕课是要认真的听了,要赶上进度,最好是老师讲课之前能预习。

   3、在时间允许的情况下还是要多找些题目来写,毕竟熟能生巧。

posted @ 2020-04-05 09:33  溟濛  阅读(128)  评论(0)    收藏  举报