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

OO第三阶段作业总结

    作者:NCHU-19201410-胡志桢

## 0.前言

   针对PTA平台上发布的9次JAVA-OO作业做出总结,总的来说,我还有很多需要改善的地方,一半情况下的作业完成得分情况比较理想,得分接近满分,但当难度比较大的时候完成的情况就差强人意了,经常只能通过部分测试点得分,得分情况很差。大概的情况是大部分作业的难度都比较合理,大家都能取得较好的分数,但少部分题目难度极其不合理,绝大部分同学完成的情况是极差的,甚至100多个学生在提交200次的情况下才开始有一位同学通过所有测试点,所以不管是PTA平台的作业难度还是学生接受能力,一定要把握一个难度的下限,让超过5成的同学能够顺利完成,9成的同学能够拿到差不多的分数,而不是近似全军覆没,建议这门课程的题目难度设计能被大部分同学接受为最好,而不是一次作业仅有十位数不到的同学能通过所有测试点,这样的题目设计出来没有什么意义,学生也得不到太多的锻炼。这是我对PTA平台的作业一些改善建议,总体来说PTA平台上的作业还是不错的。

## 1.作业过程总结

①从OP到OO:

  最初的两次作业思想基本还停留在C语言OP的思想中,没有具体体会到面向对象便捷的地方,做起题目来基本还是用C语言设计的思想完成。从第三次作业开始,伴随着数据对象类的使用,OO“一次运行,随处可用“的好处体现了出来,比如日期类变量的设计,变量设计一次后,就可以在整个JAVA文件里使用,效率非常的高,相较于C语言里的用指针指向结构体成员变量而言更加的方便。过渡的过程主要还是通过将OO思想与C语言中的指针,数据对象类与C语言中的结构体变量的成员对比,使得从OP到OO思想上转型变得易于理解。后续的作业几乎全是考察OO知识的运用,无论是对象、继承、多态、接口,都是全新的知识。

③作业过程中遇到的问题:

  初期作业的测试点信息反馈太少,调试起来非常的麻烦和费精力;中后期有对应的项目说明书和测试点信息具体反馈,很容易找到错的地方。

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

  前期大概一个下午的时间就能完成一次作业,后面几乎要用到一个星期的时间去慢慢调试改善程序。

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

  JAVA和c语言编程还是有很大区别的,个人感觉JAVA的逻辑性要求更加严格,有些在C语言内可以实现的写法,在JAVA中就有很大可能会报错,需要编程者考虑的逻辑性更加严谨。

## 2.OO设计心得

①面向过程与面向对象的比较

  面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。

  面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。

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

1、单一功能原则:认为对象应该仅具有一种单一功能的概念

2、开闭原则:认为软件体应该是对于扩展开放的,但是对于修改封闭的概念

3、里氏替换原则:认为“程序中的对象应该是可以在不改变程序正确性的前提下被它的子类所替换的”概念

4、接口隔离原则:认为“多个特定客户端接口要好于一个宽泛用途的接口”

5、依赖反转原则:认为一个方法应该遵从“依赖于抽象而不是一个实例”的概念,依赖注入所以该原则的一种实现方式

③OO编程思维的理解

  OO应该体现一种网状结构,这个结构上的每个节点“Object”只能通过“消息”和其他节点通讯。每个节点会有内部隐藏的状态,状态不可以被直接修改,而应该通过消息传递的方式来间接的修改。

 ##3.测试的理解与实践

①测试对于编码质量的重要性

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

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

  一些打着“擦边球”的情况一定要进行测试,一般PTA上的测试点考察就是这些特殊情况,特别是非法输入:”Wrong Format“(混分必备代码)

##4.课程收获

在学习Java的过程中的收获:

1.学习中,要养成良好的习惯(写括号时要成对,字母大小写要区分,单词拼写要准确)。

2.在学习的过程中,最好不是仅仅停留在java表层,不是抄书上的例子运行出结果就可以。要注意,即便对一个简单的例子也要有耐心去琢磨、调试、改动。

3.在学习的过程中一定要动手做、试着写代码,而不是抱一本书看看就行。很多东西和体会必须自己动手才能真正属于自己。

4.在 Java 的学习过程中,可能会遇到形形色色的问题不容易解决,应多去专业论坛了解相关的知识,书本上的知识有限。要会从网上搜索有用的信息 加以整理,促进学习的深入和知识水平的提高。

看了好多网上课程,说学到一定程度要尝试着自己做东西,但觉得自己仅仅经过一学期的学习,还远远不够,希望自己在以后学习中继续努力,能够真真正正拥有一门编程语言,对自己今后的发展起到作用。在学习java语言的同时,也让我学会了如何来发现问题,如何解决问题,怎样有效的学习等等,相信会对我一生都有帮助。

##5.对课程的建议

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

 

      

posted @ 2020-06-07 17:52  19201410-胡志桢  阅读(160)  评论(0)    收藏  举报