java学习的第二阶段总结

Java学习的第二阶段总结

前言:第二阶段对应的是pta4、5、6三次作业,在这几周的学习中我学会了应用java的部分正则表达式、继承性、多态性、java文件的读取和写入和ArrayList的用法等等,虽然对于大佬来说这还只是一些皮毛,但我感觉还是自己收获很大。

  1. 作业过程总结

我觉得第一次作业是初步引入java的继承和正则表达式,用法相对简单(但第一题水文数据校验与处理还是花了四五个小时),第二次作业算是对正则表达式和继承性的强化训练,让我学到了更多的正则表达式用法(学习的过程是艰难的,一元多项式求导那题也花了四五个小时),第三次作业就相对简单了很多,只花了一下午就做完了,因为一二两题是递进的,做出第一题第二题就改一改就行,这次主要用到了ArrayList和一点点继承,这个list用起来很方便,可以用compareTo自己重定义一下排序的规则,省去了自己写排序算法的时间,但我觉得这样会加长了代码的运行时间,但是对于现阶段的我们来说好用就完事。

   通过这三次作业我初步理解了继承性:子类继承父类后,继承到了父类所有的属性和方法,子类也可以重定义父类中的方法,父类可以用一个abstract抽象方法强制让子类定义该方法等等,继承的好处是提高了代码的复用性、提高了程序的扩展性还能通过增强一致性来减少模块间的接口和界面,让程序的修改和维护更加方便。

多态是同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果,比如子类重写父类的一些方法,他们方法名是一样的,但是操作是和结果是不同的。

   封装性是将将零散的东西装成一个整体,对用户隐藏具体代码,用户只需要用类的各种方法接口来使用它,就像这个刚学的ArrayList,我们只需要重写定义下排序的规则,再用它提供的各种方法接口就能对生成的list做各种操作,我觉得java的方便就在于这一个个现成的包和类,这是代码的传承,封装性提高了程序的可维护性和用户的体验。

  写这几次作业遇到的最大问题就是不清楚正则表达式的用法,百度上太零散,经常找不到我想要的例子,这导致我经常类比着自创方法,太想当然了,结果一直错,浪费大量时间,最后还是问同学才知道正确的用法。所以我觉得现阶段(网课)的大问题是没有一个全面、有例子的书(有电子版也好啊)。

  

这三次作业的时间花费大概是7小时:7小时:4小时,用到正则表达式的题目都很花时间,自己摸索很花时间。

  1. OO设计心得

通过这几次作业,我感觉多态有些是通过继承性中的子类重写父类来实现的,然后多态又统一了一些方法接口,让代码封装后提供的接口简洁、统一、便于使用。

我认为单一职责原则是让类的功能单一,一个类只做一件事,这样便于修改维护,当你想修改的时候更容易找到具体位置,这种规范的代码也让别人更容易看懂

开-闭”原则:百度上说的是:一个软件实体应当对扩展开放,对修改关闭。即软件实体应尽量在不修改原有代码的情况下进行扩展。老师曾经讲过雨刷器那个例子让我第一次接触到这个概念,类和代理之间隔了一个抽象的类,比如lever→abstractlever→abstractagent←agent,当我们有新的需求要修改类时,可以重新创建一个类,再通过抽象类连接到代理类,而不是去修改原来存在的类,这样可以人程序越来越完善且修改时不容易出错。

 

  1. 测试的理解与实践

代码能正常运行只是开始,过了测试才算初步完成,pta就是通过测试点来给分的,测试是否实现所需要的功能,不断修改错误和优化做出高质量的代码,所以测试的重要性不言而喻,现阶段我更喜欢直接在测试点加一个输出,实在不行才用debug。

  Junit百度上的解释是单元测试:是开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确。通常而言,一个单元测试是用于判断某个特定条件(或者场景)下某个特定函数的行为。我们先阶段可以用它来测试预期结果、测试运行过程。

  1. 课程收获

这4周的学习让我初步了解了面向对象的封装性、继承性与多态性三大技术特性、正则表达式的一些方法、单一原则也让我的代码更加规范、“开-闭”原则我还不怎么会用,但在接下来的作业中我会不断尝试使用它,增强代码的复用性和可维护性。

  1. 对课程的建议

建议多给一些具体的例子和完整的资料,没有课本只靠百度效率很低,很多时候都是因为不知道格式而浪费好多时间。

猜你喜欢

转载自www.cnblogs.com/zipper/p/12814310.html