面向对象编程-第二阶段作业总结

 0、前言

本次博客主要针对前3次作业的一次总结,反思。

1、作业过程总结

一、作业过程总结

①3次作业迭代关系

第五次题目就给我带来了很大的难题,就是用正则表达式来判断分水口门的数据上报是否正确,单单去学习正则表达式就需要2天时间,可想而知第五次作业第一题的难度,学完正则表达式后,又花了近6个小时去理解题目的类图,功能是怎么实现的,而后面两道题相比较简单,因为第二题依旧是通过这道题进一步深入理解面向对象设计原则中的“单一职责原则”,只不过是没有正则表达式,第三题就是刚学继承的一次练手题,所以比较简单,到了第六次作业,开始了类的继承、多态性阶段的作业,难度比上一次作业继承练手题难点,到了第二题,难度就又上来了,当然这道题有涉及正则表达式,还包括继承,多态的内容,比第五次作业难度又大了,当然因为上一次作业学了正则表达式,所以没花费比上次作业还多的时间,第七次作业需要掌握类的继承、多态性使用方法以及接口的应用,当然因为这是第一次的关于接口的作业,很上一次作业的第一题类似,只不过要用接口的知识来解决,难度不大,但是这是学习进程上的迭代,总的来说,三次作业都或多或少的体现了难度的迭代以及学习进程上的迭代。

②如何通过作业逐步理解面向对象的封装性、继承性与多态性三大技术特性;

通过第一阶段的作业,已经对理解面向对象的封装性有了一定的了解,第二阶段的作业当然依旧侧重于封装性的理解,但是更侧重的是面向对象的继承、多态性,从第五次作业的第三题就是关于面向对象的继承性的,当然难度不大,但是这也让我对继承性有了一定了解,到了第六次作业2题就是关于继承性、多态性的,就是第二题有正则表达式的内容,但是第六次作业就是把继承性、多态性连接起来了,逐步的让我更加的了解继承性、多态性了,到了第三次作业还是关于继承性、多态性的,但是加入了接口,不仅对继承性、多态性更了解了,还对接口有了一定理解,pta上的作业就是这样,新知识慢慢迭代,旧知识慢慢深入。

③作业过程中遇到的问题及解决方法

作业遇到的问题有蛮多,但是有些没必要写上来,第二阶段遇到的主要问题还是正则表达式出现匹配错误的情况,对于这种情况我选择网页上的在线正则表达式检验,一步步去完善,接着遇到的问题还有对象数组空指针的情况,调试后发现没给个个对象申请空间。

 

需要循环的为每一个对象分配空间,还有就是关于一元多项式的求导,关于指数,系数为1,-1的特殊情况,刚开始报错很多,没有仔细考虑这样的情况,后来修改,指数为1或者系数为1,-1时,分情况用equals判断,return 1或-1。

④每次作业花费的时间比例

第五次花费时间最多:4天

第六次作业花费时间:2 天

第七次作业花费时间:2天

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

在编程的过程中必须细心,一步步慢慢来,不能急,要考虑全所有情况,不能马虎,1就是1,0就是0,不能去为了一个测试点去迎合测试点,试过去,好的代码应该是适用于任何特殊情况,写代码之前就应该多加思考,而不是拿到题目就直接开是码起来,其中更应该编一段,测试一段,不然等全部代码写完再调试,很难找出错误,如果因为一个小的错误而浪费许多时间,那是得不偿失的事情。

2、OO设计心得
①对面向对象三大技术特性之间关系的理解

封装:把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏,这就是封装。封装是面向对象的特征之一,是对象和类概念的主要特性。简单的说,一个类就是一个封装了数据以及操作这些数据的代码的逻辑实体。在一个对象内部,某些代码或某些数据可以是私有的,不能被外界访问。通过这种方式,对象对内部数据提供了不同级别的保护,以防止程序中无关的部分意外的改变或错误的使用了对象的私有部分。

 

继承:继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力。通过继承创建的新类称为“子类”或“派生类”,被继承的类称为“基类”、“父类”或“超类”。继承的过程,就是从一般到特殊的过程。

 

多态:多态就是指一个类实例的相同方法在不同情形有不同表现形式。多态机制使具有不同内部结构的对象可以共享相同的外部接口。这意味着,虽然针对不同对象的具体操作不同,但通过一个公共的类,它们(那些操作)可以通过相同的方式予以调用。

 

②面向对象设计的基本原则理解(单一职责原则及“开-闭”原则)

类被修改的几率很大,因此应该专注于单一的功能。如果把多个功能放在同一个类中,功能之间就形成了关联,改变其中一个功能,有可能中止另一个功能,这时就需要新一轮的测试来避免可能出现的问题。(单一职责原则)

对扩展开放,对修改关闭。即在设计一个模块的时候,使这个模块可以在不被修改的前提下被扩展。(“开-闭”原则)

③OO编程思维的理解

基于对问题处理所需功能,从逻辑上分配分类后,按要求在类中设计好内容,类间设计好高效率的关系,并对将来的可能的复用做好规划的整体性思维。
④类设计心得

类与类之间的关系一定要搞清楚,什么时候用聚合,什么时候用依赖,什么时候用泛化,根据实际情况来选择,便于维护。

3、测试的理解与实践
①测试对于编码质量的重要性

调试对于写好一个程序是非常有帮助的功能,通过调试可以发现一些细微的Bug,这样就可以及时的发现并且改正,一些测试点没有通过可能会被我们忽略,我们通过测试点错误的地方,用调试来找哪里错了
②查阅资料,假设使用Junit进行程序的测试是否可行

使用Junit进行程序的测试是可以的,每方法完一个函数之后,对这个函数的方方面面进行测试,这样的测试我们称之为单元测试。

4、课程收获
这4周在oo思维上得到了很大的锻炼,也踩了很多的坑,更加的理解了要按要求在类中设计好内容,类间设计好高效率的关系,并对将来的可能的复用做好规划的整体性思维。

5、希望第三阶段的作业题目,难度不要增加太大

posted @ 2020-05-02 08:24  公瑾与狼  阅读(54)  评论(0)    收藏  举报