oop第二阶段学习心得

0.前言

  • 本次博客主要是对于第二个阶段学习的体会和学习总结。

1.作业总结

  • 在这几次作业中,从简单的类的继承,到类的多态与封装。由浅入深,知识层次也是由简单到复杂。
  • 最开始的那次作业涉及到了简单的类的继承,这也是我第一次接触类的继承,通过上网查询资料,我逐渐了解 到类的继承,我也知道一个类是可以通过继承另一个类从而得到其所有的属性和方法。而在第二次的作业中,主要体现的是多态。继承,重写,父类引用指向子类对象,这是多态的三个必不可少的条件。作业中也很明显的体现了这几点。在java中我们可以通过接口、继承父类重写父类方法来实现多态。第三次作业也是简单的用到了接口。成员变量、方法都包装于类的定义中,因此类与类之间可以相互调用。
  • 作业过程中遇到了很多问题,最大的理解问题便是类的多态与封装了,虽说用起来感觉不是很难,但他的概念理解起来还是有一些吃力的。其次则是正则表达式的使用了,从最初课堂上的简单使用,到后面需要非常长的一段,还得逻辑没有问题。我认为这个东西还是比较麻烦的,但是通过使用,我感觉他的用途很大。要知道当我们平常注册一个网站的用户是,用户名啊密码什么的都会有限制,如何去实现这些限制呢?正则表达式则很好地解决了这个问题。
  • 三次作业花费时间最多的则是第一次作业,主要则是那个正则表达式花的时间久一点(写起来有点头tu啊哈哈),其他两次都还差不多。
  • 通过这几处作业,我发现自己对   类的设计及他们之间的调用还是理解的不够,有的方法则是非常冗余,代码很长,还是有一些地方写的不够合适。希望自己能渐渐改进。

2.oo编程思维的理解

  •   很多东西都有他共同的特性和方法,因此我们可以通过一个抽象类来让他具有这些共同的特征和方法,而其他类也有这些特征和方法则可以通过继承和重写父类方法使其成为自己的方法。在面向对象中,解决一个问题往往需要几个类之间的相互调用,为什么在一个类中能使用另一个类的方法呢,是因为类的定义,包装了该类中所有变量和方法。
  • 单一职责简单理解就是,一个类只具有一个职责,这样在程序需要改变时,我们的改动就不会很大,每个类也不会很复杂,只需要改动相应类就行。开-闭原则的话理解的还不够,只是在课堂上了解到了一点点,自己在学习中还没怎么接触。
  • 在编程中,我们认为比较重要是类的复用性,面对不同的相似问题,类设计一次就好了,然后通过改动其中一两个地方又可以解决别的问题。我觉得这个是比较重要的,问题也能得到更快的解决。
  • 由于在这几次作业中都给出了类图,所以对类的设计也没啥体会,主要体会就是,类的单一职责。在解决具有一些相同功能的问题时,能够用上之前写过的类。类的设计复用性好的话则是能省不少的功夫。

3.测试的理解与实践

  • 测试对于一个程序的重要性是毋庸置疑的,在这几次作业中,有的我发现了不少问题,但是改正后pta相应的分数并没有得到增加,也就是说pta的测试有限。pta得到满分也并不意味着代码写的没有问题。因此,一个程序的完成必须得经过全方面的测试,尤其是当我们写的代码比较复杂时,问题也就无法直接发现,而是需要通过测试来检验。
  • Junit测试应该是可不可行的得看错误是哪类了,我们可以自行设置,以此来判断输出的结果是否是我们理想中的结果,也可以单独测试相应的功能模块。但是我自己用到地方倒是不多,我个人比较喜欢用的是通过设置断点来找出问题所在。虽然Junit可以用测试用例来测试想要的预期结果,但是Junit无法找到逻辑错误。而在一个程序中,逻辑错误出现的概率往往都比较大,而这个时候Junit是无法找到这些错误的,因此我们还是需要掌握别的方法。

4.课程收获

  • 通过这四周的学习,最大的收获就是了解并学会使用类的继承、多态和封装了。类的设计也是非常重要的,设计的好的话当需要改动的时候则改动的地方就少一点,设计的不好的话就相当于再写一个程序了。类与类之间的相互调用是可以非常灵活的,设计好的类往往每一个方法代码都不长,整体看起来也非常合理、简洁明了。还有就是正则表达式的使用了,用的话感觉还行,就是设计正则的时候比较难写了,就像之前的时间的正则,要判断的地方有很多,像什么闰年的2月有有29天而平年的只有28天呀、年分与月分之间用什么隔开呀,这些下来,一个正则就得两三行了,还得考虑其中的逻辑关系,几次作业下来,对这些时间啊什么的了解到比小学的时候更深了好多,逻辑能力也得到了提升。
  • 在这几次作业中也踩过不少的坑呀,好多测试点都一直过不了,我一直在想到底是哪里出了问题,问了问同学才知道,原来有少数测试点和指导书上是有一些不同的,这打打增强了我的探索能力,也让我更能沉得住气去找这些问题,心态变得更好了。

5.对课程的建议

  • 对于第三阶段的作业,我希望发布的时间能够稍微早一点,在面对繁杂的各类课程作业是也能更好的安排好时间。至于难度方面的话我感觉之前的强度能接受,所以后阶段作业再难一点话我觉得也还是可以的,如果能够通过作业学习到一些新的东西的话。我个人的话学习动力不怎么强,如果能够通过作业去补充自己平时学习的一些盲区的话我也是很乐意的,当然,太难的话就不要了哈哈,害怕吃不消啊。
  • 这几周的上课内容主要是围绕类的设计来的,但是我自己感觉理解到的并不是很深,学到的感觉也不是很多,可能需要一些实践才能够有一个更好的理解吧。

猜你喜欢

转载自www.cnblogs.com/zzk-111/p/12805829.html