第一阶段作业总结

前言

  本次博文是针对前三次面向对象程序设计作业的总结

  作业包含Java语法的基本使用,Java对象和方法的认识,面向对象设计方法的认识

 

1作业过程总结

   ①总结三次作业之间的迭代关系

         第一次到第三次作业,难度逐渐上升.

      第一次作业主要考察的是Java语法的基本使用,主要是if-else的嵌套,for\while循环的使用和嵌套,switch的使用等;

      第二次作业主要考察的是对象和方法的初步使用,主要是通过方法之间的调用,进一步熟悉Java语法,接触类和对象的使用以及方法的调用;

      第三次作业主要考察的是面向对象思想应用到类的设计上,通过对第二次作业的逐步迭代,逐步抽象,用面向对象的思想重构第二次作业.

 

  ②如何通过作业逐步从面向过程过渡到面向对象

         在第二和第三次作业中,从面向过程的日期判断迭代到第三次作业面向对象的日期计,面向过程在思考和编写代码时较为简单,但具有很大的耦合性,代码中各部分关联较大,且只能顺序完成单一功能,一旦出现需求更改,几乎难以修改代码.而面向对象将各部分抽离出来成为类,使其解耦,通过对象之间的操作完成所需功能,复用性好,扩展性强.

 

  ③作业过程中遇到的问题及解决方法

         主要问题

         第一次作业中,直角三角形使用勾股定理计算,会得到斜边为根号2等无限不循环小数,无法和测试数据匹配.

         解决方法:利用数学极限的定义,当两者之差小于极限E时,就认为他们是相同的

 

    第三次作业中,测试数据中有整数型(int)最大值,在运算后,出现溢出等问题

    解决方法:利用强制转换,将int转换为long类型来运算

 

  ④每次作业花费的时间比例

         三次作业所花时间比列接近1:1:1,由于之前已经自学过Java,面向对象没有太大问题,较为熟练,写的速度较快.主要时间花在类的设计和debug上.第三次作业在完成作业任务后重构了几次,花了一些时间去优化代码,尽可能的增加健壮性和复用性和减少耦合性.

 

  ⑤对编程过程的逻辑严谨性的认识及教训

         面向对象过程相比于面向过程,更为复杂,实现起来较为简单,复杂在总体设计上,往往花费时间更久,通常大于编码时间,需要考虑功能的扩展和复用.同时,设计方案有很多种,第一思路往往不是最好的,需要反复思考,逐步迭代.

 

2 OO设计心得

  ①面向过程与面向对象的比较 

         面向过程思路直接,按照步骤一步一步完成所需任务即可.面向过程是对任务和事务的抽象,不是按照步骤,而是通过各个不同部分\不同对象之间的关系来完成任务.

         第二,面向对象需要思考好类的设计,如果类设计的不好,程序的耦合性和复杂性会非常的高

 

  ②面向对象设计的基本原则理解

         1. 单一功能原则:

                一个类或一个方法,应该只敢一件事

         2. 开闭原则

            在设计的过程中,应该逐步抽象出更高级的抽象,在新功能或者调整出现时,只需要扩展和很小的修改,尽可能的减少修改.

 

  ③OO编程思维的理解

         面向对象是对世界的抽象,它将存在的事务抽象为一个类,这个类具有属性和可以完成的功能.如人类:有身高性别年龄名字等等等属性,可以完成送外卖送快递搬砖写代码等功能.但是类不能帮你完成事务,      需要一个实例才能.比如某一个人可以送外卖,但人类本身不能去送外卖,需要实例一个外卖员,才能完成功能.类只是个定义,干活的是对象.

 

 3 测试的理解与实践

        ①测试对于编码质量的重要性

          往往在编码完成后,由于设计和编码过程中的不完善和问题,会在一些情况下出现无法得到正确结果的情况,有时候错误隐藏的较深,没办法直接看出来.要保证程序的健壮性和正确性,就需要测试,将可能存在的错误找出来.

       ②假如让你设计测试用例,你会如何做

         尽可能的设计一些处于极限情况的数据,比如无穷大之类可能造成溢出等问题的数据,在一些逻辑复杂的地方要着重设计测试用例进行测试.

 

课程收获

         之前已经学过一段时间Java,所以对于设计这一块走的是老套路.主要收获是在测试上,赶工出来的代码存在隐形bug,一点点修修补补勉强通过测试点.在设计时应当考虑到扩展性和健壮性,减少bug的产生,同时测试时也要想到各种可能出现的因素,针对性设置测试用例.

 

5对课程的建议

       如果有时间宽裕可以考虑分组做个小项目练手,当然如果课程任务很多就算了.

posted on 2020-04-01 11:25  "HowYouDoing  阅读(175)  评论(0)    收藏  举报

导航