OO第一作业周期(前四周)总结
1.前言:
第一个大周期的作业,完成的情况还是挺好的,但可以明显感受到难度在一步一步地增加。
2.作业过程总结:
①总结三次作业之间的知识迭代关系:
从算法和思维知识的角度上,我感受到了这几次作业是层层递进的,第一次作业里的算法和思维在第二次作业中可以得到利用,第二次的也能在第三次中利用;
比如第二次作业里判断闰年的算法在后面几道题目中都发挥了作用。
②如何通过作业逐步从面向过程过渡到面向对象:
(1) 第一周的作业主要是入门Java的训练,主要是通过作业的训练而使我们掌握最基础的Java语法结构,多次使用条件语句和循环语句,其中if,else的嵌套使用较为频繁,再其次就是使用的数据较为繁琐,有利于我们严谨思维的培养。
(2) 第二周的作业主要是针对类的方法来训练的,通过求日期这一系列的题目,让我们对类有一个更深入的了解。
(3) 第三周的作业则上升到了类这一级别,真正从面向过程过渡到面向对象了,通过四个小题,我从两个类写到了四五个类,从混乱的类写到了单一比较具有单一职责的类,可以明显的感受到,分块和单一职责的优势,同样是一道题目,层层改进,对类的理解也会越来越深了。
③作业过程中遇到的问题及解决方法:
在第三次作业中,取值范围最大的这种情况总是超时和错误,很令人苦恼,但通过多次调试和判断相关代码的运行情况,我发现当代码输入最大值时就超过了int最大值的取值范围,所以我修改程序,设定情况当代码满足时则先进行一次操作,这样就不会把值代入时就超值了。
④每次作业花费的时间比例:
因为作业的特点是第一题普遍简单,后几题难度相当,前两次作业我第一道题和后面几道题的每道题花费的时间比例大概是1:2.5,到了第三次作业,可能因为刚刚从面向过程的思维过渡到面向对象的思维,课程的难度还是有所提高,第一道题和后面几道题的每道题花费的时间比例大概是1:4,我觉得通过这些时间的思考和摸索,个人面向对象的思维还是有所提高的。
⑤对编程过程的严谨性的认识及教训:
在做7-3 日期问题面向对象设计(聚合一)这一道题时,其中有一行代码不太完整,造成有两个测试点一直报错,通过长时间的调试才发现在一个类里面出现了问题,所以在代码设计时,很有必要对每个类的代码完成后进行测试,这样会减轻后期总代码的调试难度。
3.OO设计心得
①面向过程与面向对象的比较
面向对象中有类,方法和属性,而面向过程中只涉及函数和属性这两层,用我们平常的语法来举例子,就是面向对象具有了执行对象,拥有了主语,是主动的形式,而面向过程则是被动的形式。
②面向对象设计的基本原则理解
面向对象需要有单一职责,这样可以使你的程序中更具有兼容性,等到要改进和调整时,不需要大动干戈。
面向对象强调类和对象,很多行为都需要通过对象来进行。
③OO编程思维的理解
面向对象需要从发起动作的对象来考虑,强调类与类之间的关系,通过设定的对象与对象之间的联系而设计程序,从而使代码的重用性增加。
4.测试的理解与实践
①测试对于编码质量的重要性
一个好的程序,需要在交付使用方或者客户时能够尽量完美,应该严格避免用户在使用过程中出现一些bug,那么,对于代码的测试就变得非常重要了,调试可以使得代码更加优化和合理,是软件开发过程中必须的一个步骤。
②假如让你设计测试用例,你会如何做
首先,设置用户交互性输入时的一些特殊情况,比如设计输入int类型输入的情况中要考虑int类型输入的值为最大值和最小值的情况,这样可以较好地判断程序是否在设计时考虑全所有的情况。再者就是设计一些常规值,当用户输入一些正常值时,能得到想要的结果。
此外,还得考虑输入数据的类型如果和要求的类型不同时的情况。
5.课程收获
总结这四周来在OO方面的教训及收获
教训:1.前两次在写代码的时候没有较好地遵循面向对象的思想,造成了代码多次重复,拿判断日历那三道题来讲,第二题所用的代码在年月日这部分重复性非常大。而第三题和第四题把day,month,year单独拿出来作为类,很好的解决了代码的重用这个问题。
收获:通过这几周的学习,已经对面向对象的思想有了一定地了解,同时也掌握了类的结构,能够解决一些Java问题了。
6.对课程的建议
自我感觉课程设计的挺好的,上课加上慕课的视频再加上pta的作业,能够把我们老师所教授的东西经行巩固。
7.之后一阶段的学习计划
我认为学好一门课程,特别是在当前是网课时期,我的计划就是课前看好慕课上的视频,反复看,看熟,等到老师上课时一点就通,再通过学习后的一些练习,彻底把他们掌握。

浙公网安备 33010602011771号