第二阶段总结

  1. 0.  前言
      主要说明本次博客针对的作业情况

本次博客主要针对pta中的第4,5,6次作业,第四次作业的三道题为水文数据校验及处理、蒙特卡罗方法求圆周率、图形继承;第五次作业为图形继承与多态、一元多项式求导;第六次作业为图形卡片排序游戏、图形卡片分组游戏、求素数。

1.  作业过程总结

  1. ①总结三次作业之间的知识迭代关系;

第四次作业的三题中,第一题考察的是正则表达式的理解与使用,难度较大,特别是对于我这样对正则表达式了解较少的人来说,需要慢慢去摸索和学习,第二题体现了面向对象设计原则中的“单一职责原则”,让每个类的复用性提高,而不是将几个功能放在一个类中,这样会显得混乱,第三题中考察了对继承的理解;第五次作业的第一题是涉及了掌握类的继承、多态性及其使用方法。第二题是将类的继承和多态性,正则表达式综合起来;第六次作业增加了接口的知识,让我们在编程中逐渐掌握接口的知识。
②如何通过作业逐步理解面向对象的封装性、继承性与多态性三大技术特性;

我们可以通过作业来体会这种循序渐进的过程,从封装到继承,再到多态,封装是对于一个类来说的,就是把普通的对象进行封装,对象的属性设为私有的,对外提供get和set方法,其他类只能通过get和set对对象属性值进行操作。继承是发生在两个类之间,一个类继承另一个类是说这个类属于另一个类,具有另一个类的所有属性和方法,同时它还可以有另一个类不具备的方法和属性,就向像父亲和儿子一样,这也是继承这一名称的由来。多态是建立在继承的基础上的,一个父类对象可以产生多个不同的子类对象,根据这些子类对象的不同可以具备不同的方法,也就是说表现出了不同的形态即多态。
③作业过程中遇到的问题及解决方法

1.编程过程中经常会遇到java.lang.NullPointerException 空指针异常的问题,几经排查,找不到任何逻辑错误,但是百度后才知道是因为对象为空却调用了它,这本是非常低级的错误,但却发生了好几次,说明我的编程过程还不够仔细严谨。

2.在做水文数据校验及处理的题目之前,对于正则表达式的知识还基本是空白,所以在校验数据的过程中非常艰难,需要慢慢学习正则表达式,并且还要不断测试,检验正则表达式是否正确。还好老师提供了一个用于测试正则表达式的网站,减轻了一些工作量。
④每次作业花费的时间比例

第一次作业:大约一天,第一题90%,剩余每题5%,大部分用在了第一题“水文数据校验及处理”,因为光是测试正则表达式就花了不少时间。

第二次作业:大约一天,第一题20%,第二题80%,因为第二题综合了正则表达式,类的继承和多态性。

第三次作业:大约10小时,第一题70%,第二题20%,第三题10%,第二题代码可以借鉴第一题,基本沿袭了第一题的代码,只需做一些小改动,所以完成的比较快。


⑤对编程过程的严谨性的认识及教训

对我来说,比较需要注意的就是注意变量的命名和使用,因为经常会嫌弃名字太长而命名一些单个字母的变量,一旦代码长了就会混乱,忘记某个变量的作用是什么,所以希望以后自己能脚踏实地一些,按照作用来命名一些变量吧,否则实在容易混淆。
2.OO设计心得
①对面向对象三大技术特性之间关系的理解

我的理解是,封装是能够将客观对象封装成抽象的类,用类来体现它的一些属性,并且可以把成员变量隐藏起来,提高了代码的安全性;而继承是体现类之间的关系的,子类可以继承父类的所有属性和方法,还能拥有自己的属性和方法,可以对父类的方法进行重写,这种关系有助于我们整合代码中的某些对象,比如可以把相似的对象整合到一起,放在一个父类下;对于多态,继承是多态的前提,顾名思义,多态就是多种形态,子类可以根据情况的不同呈现不同的形态,这是我的理解。
②面向对象设计的基本原则理解(单一职责原则及“开-闭”原则)

单一职责原则:顾名思义,就是一个类最好只负责一个职责,这样分工明确,各司其职,才能让程序井然有序的运行,如果在一个类里塞了太多功能,容易发生混乱,当改变这一个类时,很有可能会牵一发而动全身,造成意想不到的破坏。

“开-闭”原则:对扩展开放,对修改封闭;信息化时代发展迅速,以前的功能渐渐不能满足现在的需求,这就迫切需要增加新功能,但是若是修改程序会影响整个系统的稳定,所以需要在现有基础上扩展。


③OO编程思维的理解

将一个大问题拆分成数个易于解决的小问题,各个击破,当一个大问题看起来复杂时,就应该将它分解,套用老方法解决类似的小问题,将重点抽象出来,忽视无用的细节,达到将整个问题解决的目的
④类设计心得

我的理解是相似的类完全可以复制粘贴,再按照他们各自的特性进行修改,这样框架相同,当某个类有问题时有助于我们尽快排查出错误,也能减少我们的工作量。
3.测试的理解与实践
①测试对于编码质量的重要性

很重要,不能因为它能通过单个测试用例就结束,而应该用各不相同的用例来测试代码的坚固性,只有经过多重考验,才能说明它足够可靠。
②查阅资料,假设使用Junit进行程序的测试是否可行
4.课程收获
总结这四周来在OO方面的教训及收获

①教训:编程之前应该进行构思,就像画画一样,有个整体的思考,在编程开始后应该采用先写大致框架,再逐步完善的方法,这样能时刻明确自己下一步该干嘛,如果一股脑写下来容易卡壳。

②收获:对面向对象编程有了更深刻的理解,对封装、继承、多态的理解和使用更进了一步。


5.对课程的建议
①第三阶段作业难度、题量的建议

建议难度适中吧,题量也是,循序渐进。
课程内容讲解方面的建议

建议老师多讲解实例,结合例子更加生动,也可以在课上对pta的题目进行适当的讲解啊。

猜你喜欢

转载自www.cnblogs.com/tj2020/p/12811965.html