最后阶段总结

0.前言
主要说明本次博客针对的作业情况

第三阶段的学习也结束了,在此做一些总结和回顾;相比第二阶段的学习综合度更高了,不过题量减少为一题,作业慢慢地逐渐过渡到实例。
1.作业过程总结
①总结三次作业之间的知识迭代关系;

第七次作业是一个关于设计雨刷系统的,是类的封装性、继承性以及多态性的综合应用,还包括接口与抽象类的使用。第八次作业是统计Java程序中关键词的出现次数,主要是需要用到Map接口。第九次作业是表达式求值,需要用到栈的知识以及类的封装。

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

第七次中第一次提交只有60分,与题目所给输出样例都一致,然后自己多次测试升档发现了问题,自己没有注意到指导书中的“对控制杆或刻度盘的操作超过界限时,此时系统仍然显示当前的信息”,然后写了判断处理条件后,就解决了。

第八次作业中不知道怎么解决注释问题,注释问题又有很多种情况,尝试过但都失败,不知道该怎么解决这些注释文体,所以最后提交上去只有70分,就没有得到解决。

第九次作业中有一个除0测试,本来准备写在除法运算中判断除数是否为0然后输出NaN,然后发现不行;解决办法:检测输入表达式中是否含有/0的部分,在判断条件中加上“||str.contains("/0")”,就解决了这个问题,成功通过。
③每次作业花费的时间比例

2:4:3
④对编程过程的严谨性的认识及教训

第七次作业中雨刷系统的编写,没有思考到升档后达到最高档位后,再升档的问题,导致测试点过不去,重新检查一遍才发现问题所在。第八次作业中统计java中关键次出现的次数,但是不需要统计注释中出现的关键字,我认为这很考验编程过程的严谨性。
2.OO设计心得
①对面向对象三大技术特性之间关系的理解

面向对象,是指通过对事物进行分解,分析,可以抽象出不同的类,通过类又可以实例化出不同的对象,这些对象都拥有同一个类所共有的属性,例如类的成员变量,类的方法。面向对象的三大特性:封装性、继承性、多态性;将这三大技术特性结合起来,可以完成一个综合性较高的程序,实现的功能更完善,结构更加严谨。

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

单一职责原则:“就一个类而言,应该仅有一个引起它变化的原因”,单一职责就是每个类实现一种功能,并且该功能应该由这个类完全封装起来,一个方法中并不会有很多很长的代码,“开-闭”原则:对于扩展是开放的,对于修改是关闭的。这样可以有效的增加了代码的复用性,体系结构更严谨,后面的一系列问题才更好解决,比如雨刷系统的重构。
③OO编程思维的理解

从初学java到现在学习接近尾声,对编程思维的理解也有了个转变。体会到了“万物皆对象”这句话,面向对象强调的是整体性,因此面向对象与面向过程在很多方面是可以互补的。同时由于对象继承和多态技术的引入,使得面向对象具有更强、更简洁的对现实世界的表达能力。从而增强了编程的组织性,重用性,灵活性。
④类设计心得

第七次作业中类的设计需要能够实现所描述的不同雨刷系统类型,同时使得程序在符合单一职责原则、迪米特法则、合成复用原则的基础上具有良好的扩展性(开-闭原则)、里氏代换原则、接口隔离原则及依赖倒转原则。

在类设计时需要思考如何体现单一职责原则及类的封装性;如何运用多态实现系统的可扩展性;以及系统扩展时接口与抽象类在设计中的地位及作用。每个类的功能尽量单一,不要太繁杂。
3.测试的理解与实践
测试对于编码质量的重要性

有的代码编写完成,自己仔细检查也没发现错误,逻辑好像也正确,但是可能用户的某个输入,导致了程序的错误,无法运行或者运行错误,代码的质量就大大下降,这时候就体现出测试代码的重要性了。如果不进行合理的测试,在使用过程中可能突然就出现了bug,到时候再改就有些为时过晚,而且让人质疑代码的质量,所以说测试对编码质量是很重要的。

4.课程收获
总结这四周来在OO方面的教训及收获

深化学习了对类的封装、继承和多态的使用。封装:将对象的数据和方法结合,由方法将对象的数据实现,并实现对象的数据隐藏。将复杂的功能封装起来,对外开放一个接口,简单调用即可。子类继承父类的变量和方法,实现代码的复用,具有传递性。继承可以有效减少类的冗余代码,通过继承来实现,让类与类之间产生关联,为多态提供基础。多态是一个接口,多个方法,都通过继承实现的不同对象调用相同的方法,进而有不同的行为。多态是对外一个接口,内部多种实现。使程序具有可扩展性和可维护性。java集抽象性、封装性、继承性和多态性于一体,实现了代码复用和代码扩充,提高了软件开发的效率,虽然我们现在的学习还比较浅显。学习程序设计的基本目的就是培养描述实际问题的程序化解决方案的关键技能,在java的学习中需要把理论和实践结合起来。

对于异常处理方面,java两个重要特性:垃圾回收机制和异常处理机制,使得java没有内存泄露,实现平台无关,catch捕捉到异常后处理异常。编程过程中思维一定要严谨,脑中要构造出程序完整的体系结构,这样写出来的程序才可以达到要求。
5.对课程的建议

老师讲解的挺好的,也挺容易明白,就是有时候希望讲解了长时间后,可以休息一下,缓缓,因为有时候某个地方可能还没有听懂,就继续开始下一个知识点的复用了,这样后面的知识也不太好掌握;还希望老师可以多讲讲类的设计,如何想到这样设计,怎么去实现这个设计相关的内容。

你可能感兴趣的:(最后阶段总结)