Java 第二阶段学习总结

0. 前言

本次博客主要针对于Java第二阶段的学习,对相应的作业及学习状况进行一次总结。

1.作业过程总结

第二阶段的作业也是在PTA上进行,相对于第一阶段的作业在逻辑思维上,代码复杂度上都有着很大的加强。第二阶段的作业分为三次大作业,毫不夸张的说,第一次大作业就给了我一个下马威。这一次的大作业是水文数据校验,我第一次看到这道题的时候,心里就有点懵逼,心想这是啥啊,密密麻麻的文字,错综复杂的类图,让我一看就产生了胆怯。果不其然,当我自己操作,开始做这道题目的时候,遇见了相当多的问题。就是这种感觉,写了三四天了,提交作业,还是零分!!!哈哈哈!心里产生出一种莫名其妙的滋味呀。无奈之下,我向班上的大佬请教了一下,那简直是豁然开朗啊!!思路和想法一阵一阵地涌现出来,虽然最终还是没有得到满分,但是结果我还是比较满意的。其实说到底呀,这道题目主要就是考察了正则表达式的应用,但是奈何自己太菜,刚学的知识不能灵活运用,导致一直卡着卡着,花费了很长很长的一段时间。

第二次大作业相对来说就简单一些了,老师也是很贴心的呀,处处为我们这些可爱的童鞋们着想!哈哈哈!!!不仅降低了作业的难度,而且减少了题目的数量,赞赞赞!!!但是第二次大作业又运用到了正则表达式,emmmm...难受啊,就是搞不懂啊!不管了,硬着头皮做下去,嘿嘿,结果还不错。花费的时间也没有那么长了。到了第三次大作业,主要就是把继承、多态、接口等Java的相关知识综合到了一起,但是作业有提示的类图和方法,做起题目来便得心应手,一切顺利。结果没花多久,就得了满分,嘻嘻嘻!爽啊!!

所以总的来说呢,这三次大作业的难度,我个人认为是层层递减的。在花费时间的比例上可以说是5:3:1吧。其实这三次作业呢,都与继承这个知识点紧密相连。基本上大多数题目都有Circle类、Rectangle类、Triangle类等等,反正变来变去,基本上就是在这里面做文章。第一次作业呢,就是这些类继承一个Shape类,然后求它们各自的面积,这就很简单了,getArea方法一写,基本上就OK了。第二次作业呢,就是在第一次作业的基础上,加入了多态的内容,这其实也不复杂,甚至可以借用第一次作业的很多代码,这也许就是迭代关系吧。就是多了几个要输出的步骤,给面积排个序,再输出。归根结底,本质上还是一样一样的。第三次作业呢,就更贴近生活了,从一个很死板的作业变成了一个趣味游戏。但是说到底,本质还是一样的,就是继承、继承。无非就是加入了接口这个知识点,也不复杂,认真地敲他几个小时的代码,完全OK啦!

经历了这三次作业,我对面向对象的封装性、继承性、多态性这三大特性有了更加深刻地认识。在做作业地过程中,经常会用到private来定义相关的属性,紧接着会写一些getter、setter方法去调用相关的属性,这就体现出了封装性。继承性和多态性就更加熟悉不过了,extends一出就是子类继承父类的相关属性和方法,在创建新的对象时可以父类创建出子类对象,这就是多态性啊。这写特性可以让我们的代码充满活力呀!

2.OO设计心得

学习Java这么久了,我对面向对象这四个字的理解,可谓是越来越深刻了。就比如一个非常复杂的问题,我们要学会对问题进行分解,分解成若干个子问题,这样就会大大降低题目的难度。每个类、每个方法都要履行单一职责,这样写出来的代码思路清晰、复杂度也不是很大,这就很nice了。再来说说封装,它的概念大致就是将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问。它的好处就在于只能通过规定的方法访问数据和隐藏类的实例细节,方便修改和实现。我觉得这些都是很有必要的。接着来说说继承,继承是类与类的一种关系,是一种“is a”的关系。比如“狗”继承“动物”,这里动物类是狗类的父类或者基类,狗类是动物类的子类或者派生类。其实是很形象的,我反正理解得挺快的。但是要注意一点,Java中继承是单继承,一个子类只能有一个父类,不能有多个,不然乱套了岂不是。子类可以继承父类的属性和方法,这就可以提高代码的质量,是很牛逼的啊!最后说多态,其实顾名思义,多态就是对象的多种形态。多态就很有意思了,父类的引用可以指向子类的对象,就很神奇。紧随其后的就带出了抽象类、接口等概念,这几个我自我感觉理解的还不是很透彻,慢慢理解吧。多多应用,应该就会了。嘻嘻。

3.测试的理解与实践

对于我个人而言,我一直认为测试对一份代码来说,是十分十分重要的。你想啊,假如要检验一份代码的质量,就是要用测试点去考证啊。就比如大家都在做的PTA,对于一道编程题可以看见有许许多多的测试点,达到一个测试点才能得到相应的分数,严格按照按点给分的原则。如果你有的测试点通过不了,那就说明了你提交的这份代码不过关,或者说功能不齐全,可能会出现各种各样的BUG,这是很令大家头疼的。为此,想要提高代码的质量,就少不了测试的考验。不然的话,哪怕是一个很小很小的错误,被用户发现了,也是非常不爽和难办的。

再来说说Junit吧。Junit是Java单元测试框架,在我们下载的eclipse中已经默认安装了。如果想用Junit来测试,我么必须得先将Junit4这个包引入,让这个包包含进我们创建的项目之中。进行完一些相关操作步骤后,点击Run As a Junit Test,便可进行测试。如果你的代码出现了错误,它会在程序框中显示,有几处错误,错在哪里,这就很棒了!个人感觉,它是检验代码质量最稳妥的方法之一,值得推荐哟!!!

4.课程收获

在Java第二阶段得学习中,我再一次地学习到了很多很多的知识。比如正则表达式,这就是一种校验字符串格式的方式,非常好用,就是有点难操作,自己还必须多在这方面下点功夫。紧接着,就是封装、继承和多态。我自我感觉,这方面的知识我掌握得还是可以滴,嘻嘻。以及衍生出的抽象类、接口等,虽然使用次数不是特别的多,但还是理解得挺好的。最后,我感觉,我对面向对象得理解很深入了。不像之前刚开始学习Java一样,所有代码全部写在main函数中,毫无任何条理可言,杂乱无章,为了完成任务而完成任务,除了自己,估计随便来个人都看不懂,哈哈哈哈!!!当然了,现在可好多了,脑海中时刻记住老师那句话,遵守单一原则,这样代码写下来层次清晰,大家都能看得一目了然。当然了,我还是有很多不足的,对知识点掌握的还不够深入,知识了解了一些比较基本的知识,更深层次的还有待探索。总而言之,继续努力学习吧,键盘敲烂,月薪过万!哈哈哈哈!希望真的可以实现吧,嘻嘻!!!

5.对课程的建议

说实话呢,我还挺喜欢这种上课方式的。老师上课和我们直播互动,如果有什么不懂随时可以提问,老师就可以给我们解答。不尽然此,老师还会把上课讲的代码发给我们,让我们自己去操作,去感受,进而更好地吸收消化知识。最后,老师会给我们布置课堂作业,现学现用,让我们可以更好地掌握知识点,巩固知识点,真的很不错呢!!!对于第三阶段的作业,我只希望不要太难,适中就行,毕竟我不想再经历一次写了好几天得零分的惨案了,呜呜呜。题目量三题左右,我觉得不错,然后难度适中,毕竟要照顾一下像我这样的小菜鸟嘛,嘻嘻!就让我跟随着老师的步伐,在编程的道路上,越走越远吧!!!

猜你喜欢

转载自www.cnblogs.com/19205116lxm/p/12813873.html