java第一阶段作业小结
一、前言:
本次博客主要针对pta(程序设计类实验辅助教学平台)上的三次java作业进行第一阶段进行总结,并在写这三次作业的过程中的点点收获与心得进行概述。
二、作业过程总结:
1、三次作业之间的迭代关系:
这三次作业数第二、第三次作业之间的联系较大,第一次作业只是一些简单的编程题,比如计算税率、判断坐标点的位置、字符转换为数字等,只是实现一些简单的功能,并没有用到java的特点,就是方法和类;学习java是一个循循渐进的过程,第二次作业就有用到java的特点--方法。比如第一题(如下图):
这题相比第一次作业就用了“方法”,让我们通过“方法”来解决相应的问题。第三次作业则更进一步的体现了java的特点,那就是类,比如第三次作业第一题(如下图):
这题要求是创建一个QuadraticEquation类,其中这次作业的第三第四题也用到了UML类图,从简单到复杂,这三次作业很好的诠释了“类--方法(函数)--代码”的这一关系。对于每一个问题或者对象都可以创建类,然后类包含方法,最后用代码来实现你的方法,其中类与类之间也可以相互调用(非私有类),这样能提高代码的复用性。
2、通过作业逐步从面向过程过渡到面向对象:
通过这三次作业可以发现,面向过程的编程如何使用函数去实现既定的功能。就好比第一次作业那样;而面向对象的编程,是关注如何把相关的功能,包括函数和数据有组织地捆绑到一个对象身上。首先我们看待问题的想法思维需要做做出改变,不应该像C语言一样针对某一问题就写一段代码,然后叠加起来,这样写的话就变成了C语 言式java,我们需要根据Java独有的特点“类--对象”方面出发,将类与对象的属性、方法都包含进去,这样就能慢慢的过渡到面向对象。
3、作业过程中遇到的问题及解决办法:
我基础不算不太好,对于我来说,遇到的问题还是很多的,但是大多数都是自己不够仔细,有时候竟然会漏掉一个esle语句,或者是多一个if语句,虽然程序没有报错,但是pta报错了,解决办法只有仔细检查了。遇到的最大问题就是第三次作业吧,当初写的时候不知道data.getNextNDays(m).showDate()之间的两个“.”是什么意思,也不是很理解这题之间的参数传递问题,然后就想不出更写不出,之后是问了同学,才解决了问题。
4、每次作业花费的时间比例:
第一次作业相对来说比叫简单吧,所以花费的时间不是很长,大约6个小时,主要是第一题出了个bug,代码量有点大,所以找了很久;第二次作业花了有12个小时吧,pta里的测试点有的题目会比较难,出了问题找起来会比较麻烦;第三次作业呢,总体难度上升,还有UML类图的加入,会更麻烦一点,再加上自己基础不算太好,总时间花了估计有两三天吧。
5、对编程过程的严谨性的认识及教训:
(1)、设置参数问题:尽量不要设置相同的参数,之后运行出错的话找错会比较麻烦,就是不知道到底是哪个参数错了;
(2)、尽量一个类一种方法,不要相互穿插,也就是单一功能原则;
(3)、养成一个习惯吧,就是在写的代码后面有适当的注释,这样后期出错的话对自己也有一定的帮助;
(4)、好好利用debug,使用debug找错的话,有时候会容易很多。
三、OO设计心得:
1、面向过程与面向对象的比较:
面向过程的编程如何使用函数去实现既定的功能,就好比第一次作业,实现缴纳税率、判断坐标等功能;而面向对象的编程,是关注如何把相关的功能,包括函数和数据有组织地捆绑到一个对象身上,比如人能够学习,把人和学习联系在一起。
2、面向对象设计的基本原则理解:
单一功能原则:就是一个对象(类)仅有一种功能,比如写一个圆的面积类,那么这个类的功能就是计算圆的面积。
3、OO编程思维的理解:
抽象:类与对象就是OO编程中最重要最基本的两个元素,在设计的时候,要先找到需要处理的各个对象,会慢慢变得抽象,将这些抽象对象找出来后,忽视那些没用的细节,这样解题会变得明朗很多。
四、测试的理解与实践:
1.测试对于编程质量的重要性:
测试对于编程质量无外乎是非常重要的,就我们这三次作业而言,pta没有测试点的话,那么我们就不知道我们的代码是不是对的,我们也无法评判其分数。
2、假如让你设计测试用例,你会怎么做:
就这几次的pta测试点而言,要提高代码的质量,就要多设置一些比较容易出错的测试点;还有很多同学会和我一样感觉pta里的测试点不是很明确,有时候报错了,不知道它表达的错误到底是哪儿,我来整的话会比较明确的告诉大家错误的地方。
五、课程收获:
在学习java之前就有咨询过上一届的学长学姐大二下学期学啥,提到java时心里还是有点小慌,但是他们说java可能是这个学期相对简单的一门了,到现在感觉还真是,不过还是有难度的。通过这个阶段的学习,学到的东西还是很多,同时也吃了很多教训,比如看题不仔细,写代码时马马虎虎,犯一些小毛病,有时候对于一些逻辑性很强或者过于抽象的题目想的不透彻,不完全理解OO编程。随然如此,但我还是学到了很多吧,搞清楚了java中的类、属性与对象,然后方法之间的联系,知道单一功能原则等。我不会停下学习java的脚步,希望获得更多的OO编程方面的知识。
六、对课程的建议:
经过这几个礼拜的学习,感觉这种上课模式很不错,直接拿着代码开讲,讲完即练,这样就能够很好的保留上课记忆,打好基础,比期之前的C语言、数据结构的学习模式来说真的很不错,所以我没有太多的建议。
七、之后一阶段的学习计划:
过了这个阶段就是大作业阶段了吧,其实心里还是有点小怕的,毕竟大作业难度大,但是我会迎头赶上的。然后通过各种渠道来丰富自己的知识,尽自己最大的努力学好java。