前言:在大一学习了C语言以后,基本掌握了一门面向过程的程序设计语言,本学期所学习的java是一门面向对象的语言,在问题的解决方面不像C同样是以过程来思考问题,而是要以面向对象的思惟来解决问题。此篇文章是对于本学期前三次Java做业的一个阶段性总结,第一次做业花费了最多的时间,有一个测试点没有过,第二次花费了大概3.5小时,第三次大概花费了8小时,做业难度不大,只是须要自主学习的知识还有不少。java
1.做业过程总结:算法
三次做业逐步将面向对象思惟体现:编程
第一次的做业没看出老师所讲的啥叫面向对象思惟,也不知道这种思惟写做业和C语言有什么不同。因而乎,第一次的做业我是在思考面向对象的基础上写出来的代码,可是写完以后总看不出啥为面向对象,啥为面向过程。脑海里只浮现老师所讲的:建立个对象、使用该对象的某个方法......稀里糊涂的,过程和对象好像没啥区别,也就那样用,随后就写完代码提交得了。学习
第二次做业来了,提出了更多要求,再也不像第一次那样没有限制地写代码,而是点名要建立固定地方法名称。在第一次做业思索了这么久地面向对象地基础上,再加上老师已经给了提示(要求写出对应地方法),写起第二次做业来还算是比较上手,分分钟我就写好了一个题(代码写的比较慢,但思路还算是清晰),开始有点理解了啥是面向对象。测试
在第三次做业来以前,老师给教过了UML类图,所以第三次做业果不其然地出现了。前两道题是按照之前套路出题,后两道题虽然给出了UML图,但和第二题功能如出一辙。在通过前两次做业的训练以后,更加理解了面向对象是一个什么样的状况,所以,主要是运用用面向对象的思惟来写的,对于建立对象,对对象的一些操做也更加熟练些。spa
三次做业就这样由浅到深逐步更加理解Java是一个怎样的面向对象。设计
三次做业的时间比例大概是30:7:16对象
缘由:第一次做业写完以后还有一个测试点老是过不了,看过同窗代码以后也没有发现有什么不对,最后仍是没有解决。第二次做业比较简单,思路清晰。第三次也不难,只是有个测试点比较麻烦就是:下n天:整型数最大值测试。算法忘记了int的最大值(计算过程会越界)这种状况,最后仍是在同窗的提醒下明白了。写代码的不严谨直接致使了写代码的时间长的问题,从此得多加思考、训练,作到严谨,减小问题的出现。字符串
2.java设计心得:get
面向过程(C语言)是一门注重怎么写、怎么算的语言,而java做为面向对象的语言,强调对象操做,即无论中间的算法是怎么实现的,而是直接使用对象的方法即行,进而,也会让Java代码更加通用(在写其余一个程序的时候可使用以前写过的方法、类)。另外,Java还有不少已经有的一些基本方法,例如比较两个数大小、类型转化、字符的匹配等等,这些是C并不具备的。这也许就是Java比C更方便、通用的缘由。
例如:Java能够经过对象来对程序简化算法,就像DateUtil date = new DateUtil(year, month, day);这里建立了一个date对象,随后,可使用该对象的一些操做,date.getMonth()、date.getDay()等一些浅显易懂的操做,让程序可读性更高、容易理解,可是C语言没有像Java这样的对象概念,所以不会有这样简便易懂的操做。
3.测试的理解与实践:
测试对于一个编程来说是相当重要的,测试是尽量考虑全部状况让代码运行。所以,代码的好坏与否,经过测试能够直接体现出来。通过三次做业,发现了老师的测试用力的不严谨问题,在第三次做业的后三题,题目所给的测试用例过不了,竟然能够过提交后老师的测试点;另外一个问题就是,在下n天功能上,n很大时候,不一样的代码跑出来相差一天,放上去提交竟然也正确。多是测试点不够具备表明性所致使。在我看来,测试点的选用应当按照正常值、边界值(极端)两个方面考虑,还有就是须要考虑不一样种算法的边界(极端)状况、分支状况,尽量的覆盖全面,方可算是质量质量高的测试点,经过得代码也是质量高(不考虑可读性等其余因素)的。
4.课程收获:
初学习Java后,初次理解了Java做为面向对象得灵活性。也确实是,java写起程序来对思路更加清晰明了,不像C语言那样要全局把握,各个操做都是一体的,移植性差些。通过此三次做业,了解到了java的一些固有操做(例如如何new一个对象、如何调用另外一个类、如何转字符串为数字、转数字为字符串等等)、一些算法的写法UML类图、和Java面向对象的思惟。
5.对课程的建议:
但愿老师多出些表明性题目来训练咱们,同时也但愿老师能够多讲解些实例,多讲些技巧、实际应用。