本学期Java学习总结
Posted ymc666
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了本学期Java学习总结相关的知识,希望对你有一定的参考价值。
1、前言:
本次博客将对这一学期的Java学习做一次总结
2、学期总结:
在这门课还没开始的时候我们就要安装软件,安装JDK,配置环境变量,这让我还没学Java就感觉这门学科很复杂,但是学着起来发现Java跟其他学科差不多,学习内容由易到难,每一阶段需要掌握的知识点也是由少到多,对相关知识的理解也由浅入深,上课也从刚开始的一脸懵到逐渐略知一二,每次大作业同样跟着所学的知识点走,先是一些简单的编程,只需要学会一些语法规则就能通过,再到后来逐渐由面向过程向面向对象靠拢,大作业算法变难,需要类中不同方法到需要不同类进行,再到String,Math等常用类,抽象类接口,继承多态的使用如图形卡片处理,异常处理,用到正则表达式的水文校验,文件的输入输出,需要用到出栈入栈的表达式运算等,这些作业都涵盖许多知识点同时各有难点。
就拿这一阶段说吧,雨刷程序功能扩展需要抽象类,算是对上一阶段继承多态接口知识点的一次总结性作业,统计关键字,需要正则表达式处理以及异常处理等,表达式运算,需要用到入栈出栈,算法上的难度上升了一个层次,同时还需要很多的判断步骤,这些大作业一开始都没什么头绪,但是上网了解了相关的算法和知识后也就能通过了。
3、对面向对象的理解及OO设计心得:
通过一个学期的学期,我对面向对象有了更深层次的理解
①面向对象编程(OOP),是一种编程范式,满足面向对象编程的语言,一般会提供类、封装、继承等语法和概念来辅助我们进行面向对象编程。面向对象是基于万物皆对象这个哲学观点. 所谓的面向对象就是将我们的程序模块化,对象化,把具体事物的特性属性和通过这些属性来实现一些动作的具体方法放到一个类里面
②对面向对象三大技术特性之间关系的理解
1)封装性:我理解的封装的本质就是通过定义类,并且给类的属性和方法加上访问权限,用于控制在程序中属性的读和修改的访问级别,就比如在水文校验中一些变量private只能在自己类里访问,需要提供getter和setter方法来访问,保证安全性,而有一些public修饰之后,能被所有类访问
2)继承性:这一阶段的作业每下一次作业都会有题目以上一次的题目为基础进行一定的改造,而图形继承,图形继承与多态,图形卡片分组,图形卡片排序等题目都需要用到继承方法,以shape为父类,circle等子类对一些方法进行重写。继承就是保持已有类的特性而构造新类的过程。父类有写好了的方法getArea,但图形的形状不同,面积计算方法不同,所以需要重写方法,如果子类中重写(覆盖)了父类中的一个方法,那么在调用这个方法的时候,将会调用子类中的这个方法,方法重写是多态实现的重要手段,可以说继承就是为了多态而准备的,继承就是多态实现的前提。继承后,子类能够利用父类中定义的变量和方法,就像它们属于子类本身一样。单继承:在类层次中,子类只继承一个父类的数据结构和方法,一个类只有一个父类多继承:在类层次中,子类继承了多个父类的数据结构和方法,一个类允许有多个继承。
3)多态性:我认为多态就是同一事物的多种不同形态。简单的说就是,做同样的事,但根据实际对象来决定具体的实现。例如,学生去上课,有的学生上高数,有的学生上计算机课,有的上英语课;叫每个学生都看书,有的学生看历史书,有的看文学,有的看技术类书籍等等。多态的实现原理是动态绑定,一个变量必须声明为某种类型,变量的类型称为它的声明类型。如果是一个引用类型变量,那么它可以是一个null值或者是对该声明类型实例的引用,这里的实例可以是该声明类型也可以是它的子类型。但变量的实际类型是引用变量引用的对象的类。所以调用哪一个方法实际上是由实际类型所决定。这就是动态绑定。
③面向对象和面向过程的区别
面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了;面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为
4、课程收获以及建议:
①对学习历程中遇到的困难的思考:
1.在学习Java的语法时,Java的语法是类似c语言的,所以学习的比较轻松。但需要注意的是有几个不容易搞清楚的关键字的用法,如public,private,final,static等,不过还好eclipse里面对于这类语法错误会给出几种改正的方案,这让我对于Java的一些写法也有了许多认识。
2.在学习Java的面向对象的编程语言的特性。比如继承,构造器,抽象类,接口,方法的多态,重载,覆盖,Java的异常处理机制。对于一个没有面向对象语言背景的人来说,我觉得这个过程需要花很长很长时间,因为学习Java之前只有C语言的经验,花了很长时间,才彻底把这些概念都搞清楚,把书上面的例子反复的揣摩,修改,尝试,把那几章内容反复的看过来,看过去,看了很多遍,才彻底领悟了
②对本学期课程的收获和经验
1.不要轻易放弃:在我看来,编程语言是触类旁通的,通过学习java语言,在日后的工作中我可以快速的学会其他语言的使用方法。java语言中所讲到的的许多思想,即使在现实生涯中也是使用的上的。这门学科我学会的最重要的便是要有一颗不轻易放弃的心。所谓“世上无难事,只怕有些人。”,很多时候我在面对十分复杂的程序编程如某些课后作业和部分大作业的一些难题时,都想要放弃,但是我最终坚持了下来。虽然我写代码比较慢,别人花几个小时我可能就是一整个个下午,但是我知道无论做什么事,只有坚持做到最后,才能成功,如果遇到一些难点就放弃就会前功尽弃。
2.多动手:学习Java的过程中一定要自己上手写代码,光看是没有用的,这也是我在这一学期总结的一点经验,比如上课的时候就可以试着写老师讲解的代码,很多东西和体会必须自己动手才能真正属于自己因为就算你不是很理解为什么这一部分代码要这样写,而你每次都动手写了,去尝试了,你可能慢慢就理解了,而如果你只是看书上的,看网上的,不动手写,那么下一次你碰到这类题目可能就不能一下找到思路,刚开始就会遇到困难。同时有个小技巧就是,在每次的大作业中,第一次提交总是没什么分,但是却可以知道题目的测试点在哪从而进行针对性的修改和添加代码
3.要多学习借鉴别人的思路:就算通过一个学期的学习,有些时候写起代码来还是没头绪,不知如何下手,这时候可以上网看看相关的代码,看看网上那些大佬们的思路,写法,可以有很多收获,一道题目当不知如何下手的时候,如果有一个相似的例子摆在面前,而你可以参考其中的写法,作者的思路,不就有头绪,写起来不就顺手一些了吗?在 Java 的学习过程中,可能会遇到形形色色的问题不容易解决,应多去专业论坛了解相关的知识,书本上的知识有限。要会从网上搜索有用的信息 加以整理,促进学习的深入和知识水平的提高,就比如CSDN,博客园等这些都是很方便初学者的论坛,很多你想问的问题可能已经存在许多解法。许多网上课程,说学到一定程度要尝试着自己做东西。而我觉得我这一学期的学习Java过程算是对我以后的学习打开了一条道路,我确确实实学到了许多知识,许多面向对象思想,而且这一同时个学期的学习肯定是对我未来的学习是有帮助的。但是仅仅一个学期的学习还远远不够,还需要长时间的积累,可能我还需要长时间的学习才能完全做出“自己的东西”,才能真正掌握这门面向对象编程语言。同时,相信我这一个学期学到怎样合理有效地解决问题,如何理清思路,逻辑等对我今后的生活都会有好处。
以上是关于本学期Java学习总结的主要内容,如果未能解决你的问题,请参考以下文章