学习OO第一阶段总结

0.前言:

对前一阶段的三次作业进行总结分析。

1.作业过程总结:

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

<1>.第一次作业编写的代码没有用到多个class,所有实行功能的过程都是在一个Main函数之中进行,内容稍微比较基础。

<2>.第二次作业编写的代码相比于第一次作业增加了一些算法的思考,功能的实现开始出现了模块化,更多内容不会出现在Main函数中。

<3>.第三次作业编写的代码相比与前两次作业让Main函数的内容主要是用来实现多class的有机串联,从而实现代码的功能,使代码的可读性更强。

总结三次作业: 内容上从简单到复杂,而从代码实用性的方面来看,多个class储存各种方法更加的人性化,并且容易调用,相互之间影响更小。

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

<1>.第一次作业主要是注重面向过程,只是为了实现简单的功能的实现,功能实现完后什么东西都没有剩下,只有return语句可以执行输出。

<2>.第二次作业就有从面向过程到面向对象方面过渡,它不仅仅只有单一一个Main函数完成所有的代码要求,开始有了多class储存不同的功能。

<3>.第三次作业相比于前两次就会发现巨大的差别,开始出现面向对象的思想,Main函数在代码之中的功能从主要变成了辅助功能,它的作用更多的是为了调用各个class,把它们有机的串联起来实现功能。

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

<1>.第一次作业由于之前学过类似的计算机语言,只需要了解Java的基本框架就能够完成代码的编写,会出现不知道如何进行输入操作,通过上课听讲课后自学都能够解决这些小问题。

<2>.第二次作业与第一次作业相比难度上来看可能是质的飞跃,它已经不满足于用一个Main写满所有的代码,它需要用到多个class完成所需要的功能。这个时候就需要我们对于各种类和方法之间的熟悉调用,需要我们了解Java本身自己具有的函数功能,老师所讲的内容和作业之间进度就会出现差异,课上所听的这小部分内容已经不够我们完成这段代码,这个时候需要我们自学能力,而在思维方面也有了很大的变化,第一次作业可能你只需要简单的if else 就能够实现功能,而第二次作业就需要我们很多的思想,需要精心设计实现功能的算法。

<3>.第三次作业可以说是第二次作业的加强版,它就出现了更多的要求,需要实现更多的功能,用到的知识点就更多了。就比如题目要求需要设置private变量,这个时候问题就来了,你是否了解并掌握了如何建立private变量的方法,还有进行有参与无参函数的建立方法,这些都是对于一个Java初学者的问题所在。解决的方法可能就需要多加练习,多加自觉熟悉。

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

就拿三次作业一道题平均所用时间来看:

第一次作业所用的时间大概是十分钟之内。

第二次作业所用的时间大概是三十分钟左右。

第三次作业几乎每道题都要用到一个小时左右。

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

例如第三次作业第二题中day的定义,必须将其定义成long类型,如果将其定义成int类型程序就会出现报错,由于此时的天数可能会超过int所能包含的范围。通过这个例子,我觉得我们需要对题目所给的范围有很清晰的认识。

2.OO设计心得:

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

<1>.面对对象与面对过程的本质区别就是面对过程编程每一个函数就是一个过程执行完就啥也不剩下了,唯一可以输出的就是return但是本质上说也还是过程的一部分,因为一旦执行完return语句本身就不再起作用了,即仅仅走了一个流程而已。所以你会发现面向过程编程想要储存点东西就不得不定义一个全局变量,而函数不过是对全局变量按照流程步骤进行加工处理的过程而已。

<2>.面对对象编程不是这样。面对对象编程,万事万物皆对象,每当建立一个新的对象,就好像建立了一个实体,它有自己的属性和方法,如果不对其进行销毁那么,她将会一直存在,而不是仅仅走个过程。你可以随时查找它的属性,也可以随时交给她一些东西处理,即对象不仅仅是一个过程模块。

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

把构成问题的各个事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙一个事物在整个解决问题的步骤中的行为。

③OO编程思维的理解:

面向对象的思维更符合人认识和思考问题的方式,面向对象的概念和应用已经超越了软件开发和程序设计,扩展到多个的领域,其中一个应用的分支就是面向对象的知识表示法。这种表示法把组成客观世界的实体抽象为数据和对数据的操作,并使用类把数据和对数据的操作封装成为一个不可分割、互相依存的整体。

3.测试的理解与实践:

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

代码编写的时候,编写者可能会为了实现功能而去拼凑答案,可能所有的测试点通过了,但是有时候还是会出现某些问题。这个时候测试的重要性就体现出来了,它可以很好的检测各个情况下,代码所能呈现的功能,是否会出现写代码者没有考虑完全的情况。测试不仅使我们的代码更完善,还能给我们找到很多的出错点,使代码的质量有所提高。

②假如让你设计测试用例,你会怎么做:

我会从极限值,输入格式,输出格式,是否越界等方面设置测试用例,因为这些测试点更考验一个程序设计者编写程序的思维全面性。

4.课程收获:

通过这几周的学习,对于面向对象编写程序的学习有了更深的了解,相比较面对过程,了解了面对对象的优点,这对于Java下一阶段的学习打下了很好的基础。

相比于上学年的c语言学习来看,我感觉java有很多更方便的地方,就拿建立起学生信息这个题来说,java就可以用简单的二维数组来完成,而c语言则需要用到结构体。

 

5.对课程的建议:

希望老师更注重讲一些例题,单纯讲解概念性的东西,理解起来会有一定的难度,如果能够加上一些例题会让接受程度有所提高。

6.对之后一段时间的学习计划:

马上就要开始大作业,这对于没接触过的东西来说就需要我们提前了解这些东西,做到提前预习,提前了解,以防到时候没有时间完成任务。尽量走在老师前面,这样我们就不会出现跟不上的情况。

 

posted @ 2020-03-31 16:44  Java终结者  阅读(143)  评论(2)    收藏  举报