0、前言:

java第一阶段的学习已经过去了,这里针对第一阶段的三次作业进行总结

1、作业过程总结:

(1)总结三次作业之间的知识迭代关系

①第一次的作业相当基础,只有最主要的main函数,其余的内容全部通过简单的代码进行实现,没有很多的涉及到java的知识点和技巧,只是让我们对与这门语言有一个了解和认知,帮助我们从C语言过渡过来。

Java校内实习报告 java实训报告范文_面向过程

②第二次的作业不同于第一次,在第一次作业的基础上,开始要求我们使用多个函数,提升了题目的难度,同时也可以帮助我们熟悉方法之间的调用关系,通过作业实践,自我学习方法的较为基础的使用,而且题目强制性的规定了各种方法的作用,可以帮助我们进一步学习自己写代码时要如何规划。

Java校内实习报告 java实训报告范文_面向对象_02

同时,各个题目之间其实可以相互使用类似的方法,提醒我们注意方法作用的单一性,方便自我的后期使用

Java校内实习报告 java实训报告范文_面向对象_03

③第三次的作业,已经不再追求简单的方法使用,而是开始让我们使用类,通过自己定义的类来实现自己想要实现的功能,同时各个类中包含相对应的作用的方法,这个时候开始java语言的一种特色就体现出来了,每个类都有自己可以实现的功能,可以相互调用,同时我们也可以从中学习类之间的使用方法

Java校内实习报告 java实训报告范文_java实训报告前言_04

Java校内实习报告 java实训报告范文_java实训报告前言_05

(2)通过作业逐步从面向过程过渡到面向对象

最初的第一次作业,其实类似于面向过程,我们注重它需要的结果,通过结果直接推理出中间的过程,但是,在第二次作业,特别是第三次作业的时候,我们开始逐渐重视起我们自己设计的类的功能是什么,该怎么去设计他才可以配合我们自己的思路流程,开始关注我们类这个对象的核心内容,这就要已经完成了相印的过渡。

(3)作业中遇到的问题以及解决方法

第一次的作业中,最关注的问题便是如何输入我们所需要的数字或者是字符,因为最初接触java语言,我们并不知道java控制台输入是怎么操作的

Java校内实习报告 java实训报告范文_面向对象_06

于是开始去搜索相关的知识,发现最常用也是相当好用的就是Scanner,然后学习相关的代码,解决了这个困难

第二次的作业使用了方法,但是方法怎么使用,我该如何调用这个方法便成了一个很大的问题,我自己写了一个名叫IsLeapYear(int year)的方法,但是我直接使用的时候java软件给我进行了报错,然后经过了网上搜索,我知道只有先定义初始化这个类,才能进行方法之间的调用

Java校内实习报告 java实训报告范文_Java校内实习报告_07

第三次作业最大的困扰其实已经脱离了语法,而是自己设计的方法存在很多的漏洞,例如最大值,最小值,是否报错,都是需要考量的事情,在花费了大量时间查错之后才改正过来,但是这也是自己设计存在很多的偏差,动手实践过快了,少了中间思考的时间,所以代码漏洞百出

(4)每次作业花费的时间比例

第一次的作业一共花了一个半小时

第二次的作业花了六个小时

第三次的作业花了两天时间

(5)对编程过程的严谨性的认识和教训

编程中需要思考的地方很多,不只是简单的完成作业中给出的表面答案,很多角落里的差错,都会成为题目报错的机会,不是一把题目拿到手中,直接为了求解所谓的答案,而是需要自己分析,拆解,才能保证错误的出现尽可能的少。第三次作业中有一次下n天的最大值报错问题,就是我在思考的时间花费太少,根本没有考虑到题目会给我超过int类型的测试点

2、设计心得

(1)面向过程与面向对象的比较

①面向过程主要是代码设计的时候为目标而设计过程的一种思想,需要关注你什么要发生,什么时候解决,怎么做

②面向对象则是关注你在代码运行时,是谁在受到影响,以你这个目标对象该做什么,怎么做为中心

(2)面向对象设计的基本原则

要尽可能降低你这个类(对象)对于其他类(对象)的影响,保证一种对象实现一种目的,不穿插,关注各个类的协调,而不是一股脑的把目的全部堆放在一起,显得杂乱不堪。

(3)编程思维的理解

要明确你的目的是什么,有什么实现了你的目的,每个物品之间的关系是什么,每个物品需要做什么,分工明确,互不干扰但是又可以相互进行。

3、测试的理解与实践

(1)测试对于编码质量的重要性

一个代码是否实用,不会因为一些输入错误而造成代码崩溃,我们都需要通过测试来得到答案,通过测试我们可以知道代码是否足够“饱满”,对于各种错误的抵抗力强不强,得到的答案可信度高不高,而测试就可以直观的把代码的“丰满度”表达出来,对于我们java编程来说是必不可少的一环。

(2)假如让你测试样例,你会怎么做

①首先我会先从代码最基本的要求入手——你的代码答案可信度高不高

先宽泛的选取样例,自己手动演算得出预期答案,随后通过代码的运行,比对实际答案与预期答案的差别,来查找漏洞。

随后,挑区一些特殊样例,例如闰年二月份第29天或者最大值最小值之类的样例,这些避开常规的运算,需要做特殊处理的样例挑选出来,通过代码演算,比对实际答案与预期答案之间的差别

②其次,我会关注一些错误的东西

例如,错误样例的输入,比如int类型的输入要求,而你使用了字符,代码是否会提醒你输入错误,还是直接给出错误答案,亦或是代码报错无法运行

4、课堂收获

首先是渐渐弄明白了面向对象和面向过程的区别,现在的思维也逐步向面向对象转变,不再是为了完成某项功能而写代码,面对题目也有了更多思考和认识。其次是学到了很多JAVA编程的基础知识,能为将来的更深层次学习打下基础。

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

而对于上学年的c语言学习来看,我感觉java有很多更方便的地方,我们可以自己通过简单的操作,来调用以前写过的类,来辅助自己完成目标,而不同于C语言复杂的操作过程

5、对于课程的建议

希望老师在上课的时候,可以结合一些例子,达到边学便用的效果,例如这次的“狼羊白菜”,很大的激发的同学们的思考热情,而且课堂气氛也有很大的提升!

6、对于之后一段时间的学习计划

我希望自己可以更多的关注一些知识方面的内容,学习课外的东西,很多技巧都需要自己的不断地补充的,课堂讲解的东西毕竟有限,例如正则的使用,这对我们未来的工作是很有帮助的,所以我会尽力去汲取对自己有用的知识,完善自己的java知识!