第一阶段作业总结
前言
本次博文是针对前三次面向对象程序设计作业的总结
作业包含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 测试的理解与实践
①测试对于编码质量的重要性
往往在编码完成后,由于设计和编码过程中的不完善和问题,会在一些情况下出现无法得到正确结果的情况,有时候错误隐藏的较深,没办法直接看出来.要保证程序的健壮性和正确性,就需要测试,将可能存在的错误找出来.
②假如让你设计测试用例,你会如何做
尽可能的设计一些处于极限情况的数据,比如无穷大之类可能造成溢出等问题的数据,在一些逻辑复杂的地方要着重设计测试用例进行测试.
4 课程收获
之前已经学过一段时间Java,所以对于设计这一块走的是老套路.主要收获是在测试上,赶工出来的代码存在隐形bug,一点点修修补补勉强通过测试点.在设计时应当考虑到扩展性和健壮性,减少bug的产生,同时测试时也要想到各种可能出现的因素,针对性设置测试用例.
5对课程的建议
如果有时间宽裕可以考虑分组做个小项目练手,当然如果课程任务很多就算了.
posted on 2020-04-01 11:25 "HowYouDoing 阅读(175) 评论(0) 收藏 举报
浙公网安备 33010602011771号