第一阶段作业总结

前言:第一阶段有三次作业,程度是由简到难,对应了这些天上课的内容,第一次作业是对于各类数据类型的考察,第二次作业是队java中方法的使用的考察,第三次作业是对Java的类进行考察。 三次作业层层递进,越来越接近Java的编程风格,让我更清晰的理解Java与C语言的差别。

一、作业过程总结

1、三次作业之间的知识迭代关系:

作业一考察了对于double、char、int三种数据类型的使用、Java输入输出语句的使用以及分支结构if、switch和循环结构for的使用,是对最基础的Java编程能力的考察。

作业二考察了我们对于方法的使用能力,需要我们会方法的定义、调用、传值、返值。

作业三考察了Java的类的定义与使用。

三次作业形成一个过渡,让我们从Java的基础编程到接触Java的核心思想,越到后面需要知道的越多,所需要掌握的知识点也越多,从数据类型到方法再到类,一步一步让我们巩固课上所学的知识,以及课上没讲,自己在csdn等查到的资料

2、通过作业逐步从面向过程过渡到面向对象:

三次作业层层递进,将我们逐步从C语言的面对过程设计转向Java的面对对象设计,第一次作业和之前C语言编程差别不大,主要是基本编程格式的不同,第二次作业的方法和C语言的函数类似,而第三次的类是Java面对对象设计的核心成员,它让我更清晰的理解了面对对象的设计思想,面对过程是按照解决问题的步骤一步一步解决,面对对象是通过类与对象将问题细分,分成多个模块,作业三里的类的使用就让我深切体会到了这种思想,以后的编程要学着把问题的各类成分看成对象,这样更方便解决问题。

3、作业过程中遇到的问题及解决方法:.

  (1).搞错数据类型,如作业一中算税收的时候,题目没有明确输出的数据格式,我看样例以为是保留一位小数,结果测试点一直通不过,后来改为直接输出double的就行了。

  (2).对double的精确位数掌握不好,在算是什么三角形的时候我直接用a*a+b*b-c*c==0,其实应该是(a*a+b*b-c*c)<=0.000001。

  (3).所用的算法太复杂,导致超长,无法提交,后来网上查找资料,学习更加简洁的算法,再加以改进。

  (4).在一个类里调用俩次传值,以及返回多个值,如作业三中,需要新建一个类才能完成。

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

  作业一很简单所以很快,每题大概半个小时左右,作业二需要调用方法,所以每题可能花一个小时左右完成,作业三因为对类的使用不熟练,一题要两个小时以上,最多的花了四个小时。

5、对编程过程的逻辑严谨性的认识及教训:

  编程是需要非常严谨的逻辑的,尤其是对于交叉的条件,在判断三角形的时候就是考虑的不全面,所以导致测试点一大半过不去,因为我的算法会判断错等腰直角三角形和直角三角形这几个有重复条件的情况,其次是算日期的,需要把大小月,闰年平年,12月等情况区分开,不然就会出错。

二、OO设计心得:

1、面向过程与面向对象的比较:

面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了;面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。这是两种思想,因为面对对象有封装、继承、多态性的特性,所以这种方法编写的程序更灵活、易维护、易复用、易扩展,但是因为类调用时需要实例化,开销比较大,比较消耗资源,性能会比不上面对过程。

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

  (1). 单一职责原则:一个类功能要单一,这样效率会更高。

  (2). 开放封闭原则:对扩展开放,对修改关闭,这样让对于方法的变更而对依赖于这个方法的其他代码产生的影响最小化

  (3). 里氏替换原则:提高代码的重用性,提高代码的可扩展性

  (4). 依赖原则:提高了代码的容错性、扩展性和易于维护

  (5). 接口分离原则:避免接口污染,实现高内聚

  (6). 迪米特法则:减少对象之间的耦合性

3、OO编程思维的理解:

  Object Oriented,OO 面向对象。其实就是把程序看做一个个个体,个体进行分类,分级,整合的思想。具体分为封装,继承,多态,抽象。

三、测试的理解与实践:

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

  测试对于编码质量十分重要,一个程序编完,或多或少会有错误,我们总有考虑不周到的地方,测试能让我们找到代码中的错误与漏洞,使代码更符合要求。

2、假如让你设计测试用例,你会如何做:

  首先,我会对题目的样例进行测试,其次然后是边界值测试,最后还要测试特殊情况。

四、课程收获:

这四周对于oo的学习,让我对面对对象的思想更为了解,开始可能习惯性的以上学期的面对过程思想,但是后面接触了类以后,就逐渐能以面对对象的思维考虑问题了,面对对象设计主要是要把问题里面的对象找出来,让程序模块化更高,以我们人类自身习惯的角度,去解决问题。

五、对课程的建议

  那个回答问题的环节时间给多一些,有时候程序会没有反应,然后就提交不上去,其次讲课的时候多加一些代码例子,然后在群文件里保存那些示例代码。

posted @ 2020-04-04 19:58  779842968  阅读(93)  评论(0)    收藏  举报