Java学习总结
1、各个阶段涉及知识类型:
(1)第一阶段知识类型
①第一次的作业相当基础,只有最主要的main函数,其余的内容全部通过简单的代码进行实现,没有很多的涉及到java的知识点和技巧,只是让我们对与这门语言有一个了解和认知,帮助我们从C语言过渡过来。
②第二次的作业不同于第一次,在第一次作业的基础上,开始要求我们使用多个函数,提升了题目的难度,同时也可以帮助我们熟悉方法之间的调用关系,通过作业实践,自我学习方法的较为基础的使用,而且题目强制性的规定了各种方法的作用,可以帮助我们进一步学习自己写代码时要如何规划。
同时,各个题目之间其实可以相互使用类似的方法,提醒我们注意方法作用的单一性,方便自我的后期使用
③第三次的作业,已经不再追求简单的方法使用,而是开始让我们使用类,通过自己定义的类来实现自己想要实现的功能,同时各个类中包含相对应的作用的方法,这个时候开始java语言的一种特色就体现出来了,每个类都有自己可以实现的功能,可以相互调用,同时我们也可以从中学习类之间的使用方法
(2)第二阶段涉及类型
①第一次作业主要是有关于正则表达式的应用并简单的了解继承,要求正则表达式的使用能基本合格,题目较难。
②第二次作业是对正则表达式的巩固利用,并对继承与多态更深的理解并且对ArryList等学会使用,而且要求更高,需要二者融合
③第三次作业是对前两次的继承多态进行一次总结,类结构如何完善才能使得系统具有较好的可复用性 。
2、通过练习过渡至面向对象以及对此的心得
类似于面向过程,我们注重它需要的结果,通过结果直接推理出中间的过程,但是,随着一次次的练习,我们开始逐渐重视起我们自己设计的类的功能是什么,该怎么去设计他才可以配合我们自己的思路流程,开始关注我们类这个对象的核心内容,这就要已经完成了相印的过渡。
(1)面向过程与面向对象的比较
①面向过程主要是代码设计的时候为目标而设计过程的一种思想,需要关注你什么要发生,什么时候解决,怎么做
②面向对象则是关注你在代码运行时,是谁在受到影响,以你这个目标对象该做什么,怎么做为中心
(2)面向对象设计的基本原则
要尽可能降低你这个类(对象)对于其他类(对象)的影响,保证一种对象实现一种目的,不穿插,关注各个类的协调,而不是一股脑的把目的全部堆放在一起,显得杂乱不堪。
(3)编程思维的理解
要明确你的目的是什么,有什么实现了你的目的,每个物品之间的关系是什么,每个物品需要做什么,分工明确,互不干扰但是又可以相互进行。
另外,编程中需要思考的地方很多,不只是简单的完成作业中给出的表面答案,很多角落里的差错,都会成为题目报错的机会,不是一把题目拿到手中,直接为了求解所谓的答案,而是需要自己分析,拆解,才能保证错误的出现尽可能的少。第三次作业中有一次下n天的最大值报错问题,就是我在思考的时间花费太少,根本没有考虑到题目会给我超过int类型的测试点。面向对象强调的是整体性,因此面向对象与面向过程在很多方面是可以互补的。同时由于对象继承和多态技术的引入,使得面向对象具有更强、更简洁的对现实世界的表达能力。从而增强了编程的组织性,重用性,灵活性。
3、类设计心得:
4、面向对象三大技术特性之间关系的理解
(1)封装:
封装是面向对象方法的重要原则,就是把对象的属性和操作结合为一个独立的整体,并尽可能隐藏对象的内部实现细节。良好的封装能够减少耦合。类内部的结构可以自由修改。可以对成员进行更精确的控制。隐藏信息,实现细节
(2)继承:
是面向对象最显著的一个特性。继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力。让类与类之间产生继承关系。极大的提高了代码的复用性。
(3)多态:
多态就是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定,即一个引用变量倒底会指向哪个类的实例对象,该引用变量发出的方法调用到底是哪个类中实现的方法,必须在由程序运行期间才能决定。因为在程序运行时才确定具体的类,这样,不用修改源程序代码,就可以让引用变量绑定到各种不同的类实现上,从而导致该引用调用的具体方法随之改变,即不修改程序代码就可以改变程序运行时所绑定的具体代码,让程序可以选择多个运行状态,这就是多态性。
5、对编程过程的严谨性的认识及教训:
这几次的作业,让我深刻认识到了逻辑严谨性的重要性。因为逻辑的严谨性不够,导致有很多一些比较特殊的情况就没有能够进行讨论,导致最后结果出问题,如果在编写的时候逻辑严谨,那么在类的设计的时候,就会很容易的对每种要求进行分割,从而使自己的代码逻辑紧凑,并且错误的例子也会少很多,并且在根据作业要求写代码时,不能按部就班的照抄,应当有自己的思路,因为题目给出的要求和思路是别人的,没有经过自身的思考进行使用,很容易出现纰漏。
6、理解测试的重要性
一个代码是否实用,不会因为一些输入错误而造成代码崩溃,我们都需要通过测试来得到答案,通过测试我们可以知道代码是否足够“饱满”,对于各种错误的抵抗力强不强,得到的答案可信度高不高,而测试就可以直观的把代码的“丰满度”表达出来,对于我们java编程来说是必不可少的一环。