JAVA第一阶段总结
总体来说,第一次作业是C语言基础的巩固,主要还是java的框架,其次是main函数的掌握,main函数一般是程序的入口。第二次作业,让我更进一步理解了类和对象以及方法的概念,类可以看成是创建对象的模板,也可以说是方法和对象的集合,而方法侧重于解决一种或多种问题。第三次作业,就逐渐让我们设计一个类,并且创建该类的构造方法、以及属性的getter及setter方法,并编写其他特定的方法使其能够调用,从而避免了代码的重复。从第一次作业到第三次作业也是逐步从面向过程过渡到面向对象的过程。
三次作业中,循序渐进的暴露出来了我在编程中存在的问题,接下来我谈谈我在作业中遇到的问题以及解决办法。
第一次作业主要是一些基本的题目,前三道题总体来说没有什么大的问题,其中有障碍的是后两道题,第四题在if语句嵌套时有点小错误,一直没有发现,直到第二天才找到错误;比较困难的一道题是第五题(统计最大出现次数),它是一道于数组结合的题目,同时也涉及了排序和统计两个功能,由于长时间没有碰过代码,排序和统计显得生疏了很多,我又一次复习了以前的知识,第一次作业所用时间大概两天时间。
第二次作业共有四道题,第一道题做起来很快,后三道题的本质就是三个方法,由于不能使用有关日期的方法和类,所以需要有自己设计一个方法来解决,这样从而锻炼了我们的思维能力;其中有一个有关闰年的题目,要求是计算出当前输入日期离0001年1月1日所差的天数,然后拿这个天数算星期几。当时在算天数时总会有错误,经过不断调试之后,才发现自己忘记考虑负数的情况,后来用了Math.abs()后才得以解决。在求前n天一题时,自己写的方法有几个测试点很难通过,比如在9月初、跨年时,问题就暴露出来了,因为有着闰年和每月天数不同的差异,所以才导致这些细小问题的出现,我的解决办法是在几个特殊的月份单独进行处理,这样问题也就迎刃而解。本次作业较第一次相对复杂,完成时间大概三四天左右。
第三次作业让我更深入的了解了类,那种面向对象的思想在这次作业中充分的体现出来。第一题是用创建类来解方程,相对比较容易,以外的三题都是日期类设计,要求却大不相同,使不同的类满足各种各样的关系。其中第一个日期类,是创建一个DateUtil类,再编写用8个方法实现所有的功能,而第二个日期类则是给出了四个类图,并且分别创建Year、Month、Day、DateUtil,将四个类逐一聚合,由Day包含于DateUtil,Month包含于Day,Year包含于Month。后面的也是给出类图,按照类图来使类之间由聚合关系组成。此次作业的难点是类用不同的 要求来使用它。这次作业所花的时间大概三四天左右,存在问题是类于类之间的依赖关系,让我认识到了OO思想带来的很多不一样的东西。
关于OO的设计心得,我认为面向对象是面向过程的改进版本,面向过程强调的是步骤,而面向对象强调的是对象,例如用锅做饭,一步一步的将饭做好是一个过程,对象就指的是锅。我从一开始的懵懂无知,渐渐的了解了一些面向对象的原则,OO的原则之一就是对象应该仅具有一种单一功能。说到OO思维,我想到的是,当我们用OO思想来解决问题时,首先应该找到它的实体(对象),通过对对象的一系列操作来解决它。
每次作业,都会有各种测试,可见测试对于代码来说是至关重要的,好的代码一定能经得起测试以及考验。测试当然也需要好的测试用例,同时我们不可能一味地去把所有的合理数据都输入一遍,这样下来只会白白浪费掉好多时间。如果我能设计测试用例,我肯定会考虑完善,结合综合因素,将测试边界为重点目标,因为这也是大多数代码的问题所在;还要根据题目要求,筛选出特例作为测试用例。
通过对java语言四周的学习,我感觉我自己,从一开始的陌生,渐渐的对OO编程的进一步了解,而且我觉得这些远远不够。毕竟真正的掌握一门编程语言是一个循序渐进的过程,而并不是三天打鱼,两天晒网,这样不仅学不到东西,还白白浪费时间。我做为一名物联网专业的学生,在以后的学习过程中。程序设计方面更应该严格的要求自己,不断弥补自己的不足,遇见不会的问题,及时咨询老师和同学,直到解决它。学习的过程中的不断提高,使自己的编程技术得以提高。

浙公网安备 33010602011771号