南昌航空大学-软件学院-19201410-胡志桢--OO第二阶段-作业总结

OO第二单元作业总结
作者:NCHU-19201410-胡志桢


## 0.前言
首先针对PTA平台上发布的近三次JAVA-OO作业做出总结,第一次作业的得分情况是50分,第二次作业的得分情况是60分,第三次作业的得分情况是125分。

## 1.作业过程总结
①作业知识迭代关系:类、继承、多态、接口
作业过程中遇到的问题:

虽然在第二次阶段中运用到了很多OO思想的东西,但我作业思想基本还停留在C语言OP的思想中,没有具体体会到面向对象便捷的地方,做起题目来基本还是用C语言设计的思想完成,除了类以外的地方还是面向过程。
其中第一次作业的第一题“水文数据处理与校检”、第二次作业的第二题“一元多项式求导”问题比较复杂,导致完成情况很差。主要感觉自己所学的知识不足以处理这种类型的题目,对我这类基础较差的同学来说根本无法下手。
而图形类的继承问题贯穿三次作业,每次都需要运用到新学的知识,很好的完成了知识迭代,而且处理起来比较省时,还是比较好的。
第三次作业的附加题问题虽然看起来比较简单,但要尽可能地缩短运行时间和优化算法,其实还是很有挑战性的,这种类型的题也是很不错的。

②每次作业花费的时间比例:

第一次作业花费了一个周六晚上和周日上午的时间,水文校检这题花费了大量的时间依然毫无头绪,只能放弃此题去完成另外两个题目了,得分情况很差。

第二次作业的图形类沿用上一次作业的类,省了不少时间,但有一个非法输入测试点没过,没有拿到满分,而导数类的题目由于我对正则表达式没有很好的掌握,只能完成一部分测试点拿了一点基础分,得分情况较差。

第三次作业前两题沿用之前的类,写起来轻车熟路,除第一题有一个测试点没过以外,其他题均拿了满分,得分情况较好。

## 2.OO设计心得
①面向过程与面向对象的比较

面向过程需要设计结构体成员变量并通过指针的方式传送给更改变量数据的地方,而面向对象则可以再编写成员变量类后实现“一次编写,到处运行”的功能,相较OP而言OO更加便捷、实用,而且子类可以通过继承的方式来得到父类信息,并且通过super的方式来获取父类的私有变量数据。面向过程和面向对象的主要分别在于对方法功能的使用不同,面向过程是为了解决一个问题将功能步骤依次使用,而面向对象虽然针对待解问题包含的元素而进行对象的划分,二者的差异还是挺大的。

②面向对象设计的基本原则理解

说实话,因为目前接触到的面向对象设计次数还没有很多,仅仅接触到了多态类的编写和继承,接口也用的不太多。我目前的知识水平还不能很好的理解OO的五大基本原则。

③OO编程思维的理解

我的理解就是“一次编写,到处运行”,有点类似与C语言中的结构体成员变量。


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

我们要反复对数据进行调试,以发现程序的问题。即使能够成功编译,但编译的结果是错误的,写出来的程序也是白搭。

②假如让你设计测试用例,你会如何做

一些打着“擦边球”的情况一定要进行测试,一般PTA上的测试点考察就是这些特殊情况。常规情况的测试数量尽可能地减少,并且测试用例尽可能反馈更多信息出来。题目尽量设计的简单一点,我觉得主要目的还是让学生把课上所学的知识应用到题目中,可以出一些选择填空题,而不是类似“水文数据处理与校检”这种类型的题目,通过率真的非常的低,很多同学看到题目就不想做了,最后什么都没有学到。


##4.课程收获
在多次对图形类题目编程后,我逐渐掌握了数据类,继承,多态,接口的知识,并较上一次而言,更好的理解了OO思想在程序编写中的好处。

##5.对课程的建议
老师的上课效果拉满,特别的幽默风趣,而且会将知识点结合实际代码操作进行讲解,还是挺容易接受的。而且老师课后会经常给我们提供一些有用的学习资料,费了很大的心思让我们尽快适应当前的授课模式。但毕竟网上授课效果有限,讲授的效果肯定没有在学校里的效果好,所以这门课程的重心主要还是靠我们自主学习。PTA上的练习希望能和所学知识结合起来,数据量庞大且抽象的题目真的不太适合大部分同学练手,还是希望能多出一些基础的题目。

猜你喜欢

转载自www.cnblogs.com/Nchu19201410/p/12815031.html
今日推荐