0.前言
本次博客针对本学期Java学习的一些心得体会。
1.作业过程总结
①总结三次作业之间的知识迭代关系;
最后这几次作业相对于前面学习中的作业要难,任务量更大,但是写起来却没有感觉很难,也是之前这些练习让我们能越来越熟练地编程吧。后面三次作业分别是雨刷器设计、统计java关键词、表达式计算。
雨刷器设计:最大的体会是利用了抽象类,使得代码的封装性更好,能在不改变原代码的基础上增加新功能,相对应的,对于具有类似功能的接口的知识也有了一定的了解。
统计java关键词:对于这种需要输入一大段字符串然后进行处理的题,总是很能吸引我的兴趣,就比如上次的水文校验差不多,因为刚开始就要想好该怎么样去处理这么一长串的字符,就比如如何分割他们进行匹配,还有匹配时的一些想法,有的时候想出来了,有方向了真的特别爽。本次作业对于字符串的相关操作也是得到了极大地复习,也加深了理解还有对于正则表达式也逐渐熟练。
表达式计算:这道题的算法,在我们学习C语言数据结构的时候就有涉猎,但还是觉得吧,看起来简单的东西是需要下这么多功夫的。通过这次作业让我对于java的数据结构有了一定的了解,也熟练运用了堆栈,起初在我的构思中设置操作符的优先级我还是用了HashMap键值设置优先级。
总的来说,这三次作业算是对于之前学习的一个大总结,也逐渐开始自己设计达到要求,尽管测试点过了,但是我觉得我还做得不够好,代码还是有点冗长,具体功能应该还是可以拆分的,对于其方法的单一职责做的不是很好。
②如何通过作业逐步理解面向对象的封装性、继承性与多态性三大技术特性;
首先,对于继承性,在写作业的过程中,我们首先需要有一个正确的方向即构思来实现我们想要实现的功能,这个时候,我们需要好好架构好一些类,理清他们之间的关系,对于功能类似的,我们可以试着把它归结在一起,用一个父类来统领他们,这也可以体现良好的封装性,对于封装性,在雨刷器设计中体现的比较多,也有体现继承性,可以使得直接添加一个新的类就可以实现新的功能,也对旧版本的雨刷器的数据进行了很好的保留,至于多态性,具体没有什么感觉,现阶段也没常用,就是感觉在代码量多的情况下,多态性可以解决很大的问题,使得代码更加清晰、简洁。
③作业过程中遇到的问题及解决方法
每次作业都并不是很复杂,问题都是由大化小再逐个解决,首先先有个大方向,然后再考虑特例,优化一下代码,虽然肯定还是会存在一些问题没有发现,但是只要有方向就能够针对性的想出解决方法来解决。还有就是每次都会有一些粗心的地方,前面写过地方没有什么怀疑,然后就导致后面写的正确了但还是有错误,所以每次写代码的时候都应该确保我们写过的每一行都不出现错误,起码不应该是粗心大意。
④每次作业花费的时间比例
大概都花费了半天时间,1:1:1。
⑤对编程过程的严谨性的认识及教训
Java相对于之前的C语言来说,我感觉java的编写更加轻松简便,但正是这轻松简便,我有好几次都犯了这种错误,就是将String的equals方法和matches用混了,导致一直出现逻辑错误,浪费了很多时间,不过对于debug的使用也熟练了起来。
2.OO设计心得
①面向对象设计的基本原则理解
优秀的代码应该都要很好地考虑这些原则,对于代码的可读性、复用性还有实用性都有很大的的价值。单一职责:每个类都应该做好自己的事情,不应该与其他的类有属性上,方法上的连接,各实现各的功能。开闭原则:能够使得代码的实用性更好。
②类设计心得
对于类的设计,我觉得我现在的能力还比较欠缺,对于问题划分的还没有那么细,一些类还是有些冗长,使得代码的可读性降低,这一方面还是有待改进,不过也跟开始写之前的准备工作有关,对待问题分析的不够透彻。
3.测试的理解与实践
测试对于编码质量的重要性
测试是代码的灵魂,我们想要实现的功能就是测试点,如果实现不了我们想要的功能,那这代码写出来也没有用处。当然,能够使得用户的使用体验更好的代码才是完美的代码。
4.课程收获
本学期的学习体会
初上此课,就会想起别的方向的同学之前给我灌输的印象,他们说挺难的,但是在学习过程中,我觉得挺轻松的,虽然我对其的认识并不那么到位,也没有花很多时间去钻研,但是我觉得我基本的学习任务还是达标了的,所以我并没有什么太大的遗憾。自从学习java后,平时会看一些关于java的视频,我更加了解到,他的深奥,以及相关计算机知识的浩如烟海,我们都实在是太渺小,在看着他们写出来的作品后,我会发出赞叹,也会扪心自问,甚至有些年纪比我小的人都比我写的好,更是如此,所以我还是有过迷茫,也更加认识到大学的生活不止于不挂科,每学期的那几本书,更在于自己对于时间的管理与利用,自己到底有没有将时间花在更加有意义的地方,自己的大学生活到底有没有意义,每每如此我就会换种心态了。
5.对课程的建议
对于本课程,我认为挺好的,本次由于现实的原因,采取了不同于以往的课堂形式,但是我觉得并没有影响到我们的学习效果,别的课程不说,但是java我是如此认为,只要上课认真听了,作业自己认真细心地写了,我觉得还是没有问题的。