前言:
本次博客是针对我的Java第一阶段的作业(共三次)发表的一个总结性博客。通过这三次作业,我更加了解面向对象与面向过程的区别。同时,这三次作业加深了我对面向对象思维的认识。下面是具体的内容:
1.作业过程总结
①三次作业之间的知识迭代关系:作业的难度和复杂度是依次递增的,逐步从面向过程过渡到面向对象。
②如何通过作业逐步从面向过程过渡到面向对象:第一次作业主要是考察简单的输入、输出、if、else和switch(case)的运用,主要是采用面向过程来解决问题。第二次作业就增加了方法的创建使用,不再是单一的只在主类写代码来实现。第三次作业是在第二次作业的题目上进行的延伸。增加了对类的使用,并且一个题目可以用多种解法,涉及到类的依赖、关联、聚合、组合等关系的运用,特别是第三题和第四题,面向对象的思想尤为明显。
③作业过程中遇到的问题及解决方法:循环的算法参数写错导致答案错误,检查了几遍代码都没发现问题,最后使用debug找出了错误。还有一个是第三次作业的第三题,在DateUtil类的构造方法中month没有传值进去同时day没有初始化导致无输出结果,最后重新写了构造方法就解决了。
④每次作业花费的时间比例:1:2:3
⑤对编程过程的严谨性的认识及教训:Java编程的时候十分严谨,一些编译和语法上的错误在写代码的时候编译器就会有提示。要学会使用debug,有很多算法错误很难找到,使用debug去寻找会容易许多。我又一次就是算法上有一点小小的错误导致结果不正确找了好久都没找到,然后使用debug调试找到了错误。
2.OO设计心得
①面向过程与面向对象的比较:面向过程的着重点是过程,这个过程可以由许多函数组成,这些函数都是独立存在的,只要在最后的main函数进行调用就可以使用,面向过程是通过过程来解决问题,是我们解决问题的具体步骤。而面向对象着重点在对象,我们会创建一些类,这些类都是抽象的他们有自己的属性和方法,我们往往是通过new出一个对象,这个对象就具有这个类的属性,同时可以通过这个对象来调用这个类里面的方法。就比如我创建一个people类,里面有年龄身高体重等属性,同时还有eat、move等方法。如果我们向面向过程里面那样直接去调用肯定是不行的,编译器会直接报错。这时候就需要new一个people,假设是p1,那p1就是people类的一个实体,它就具有people类的年龄身高体重等属性,同时可以使用people类的eat和move方法。
②面向对象设计的基本原则理解:这方面了解的很少,单一职责原则、继承、接口、和多态也只知道一些。一个类、方法、接口只能有一个职责。关于继承,子类可以继承父类所有的方法,子类可以扩展父类的功能但是不能改变父类原有的功能。接口所有方法都不能实现,一个类可以实现多个接口,接口可以继承接口。多态就是类型转换带来的作用,比如子类转换为父类。
③OO编程思维的理解:面向对象编程思维是以对象为中心,面向对象就是将对象的属性和方法封装起来。类具有属性和方法,是抽象的,而对象是类的实体,也具有类的属性和方法。通过对象来使用类的各种方法实现所需功能。
3.测试的理解与实践
①测试对于编码质量的重要性:测试首先是可以检验代码的正确性,如果代码有算法错误,测试是比较容易检测出来,以便于后续代码的修改。其次,测试也可以看出代码的质量,通过的测试越多越繁杂说明代码质量越高。
②假如让你设计测试用例,你会如何做:首先要分析代码要实现什么功能,期待怎样的输出,然后找出临界值,考虑各种特殊情况,当然正常的情况和异常也要考虑进去,可以顺着实现功能的一条条路径去设置可能的测试点。
4.课程收获
说到收获,那肯定是非常大的,经过这近一个月的学习,我由一个连输入输出都不知道的小白变成会写一些简单代码解决简单问题的大白。最重要的是了解了面向对象的思想而不再拘泥于面向过程的固定模式。当然在学习过程中也因为很多细节没有注意到而导致出错,最后我觉得最重要的是要学会自学,有些细节知识老师可能不会讲,这就需要自己去自学,不然写代码的时候一遇到就会卡壳。
5.对课程的建议
继续保持循循渐进的教学方式,上课多举些例子,每次课堂作业都讲一下(当然目前都是这样的)。
6.之后的学习计划
按时按量按质完成作业,在紧跟老师步伐的基础上,可适当自学一些,最主要的是攻克自己薄弱的地方。加油!
来源:oschina
链接:https://my.oschina.net/u/4315935/blog/4187849