OO第一次总结

  学OO学了一个月,我感触良多。虽然这是我们第一次系统地学习面向对象,但其实从大一开始我们就已经接触了这种编程思想。在我们学Python的时候,就已经接触了类和对象的概念,只不过当时不作为重点内容而在教学中一带而过;在大二上学期,有些同学选了Java程序设计这门选修课,可以说也是提前接触了面向对象的编程思想。本学期开学以来,通过这几节课以及三次作业,我对面向对象编程思想有了更深刻的理解。

作业一

自己的bug:第一次作业中,我有一个公测点没有过,原因是输出的格式没有考虑周全,在特定数据下居然会多输出一个逗号,这可以说是非常低级的错误了,可能我已经习惯了数据结构课的那种标准化的测试数据,那时候对程序健壮性的要求不是很高。这次的错误源于一个不好的代码风格,导致在随机输入时可能会出现不符合要求的输出。在今后的编程中我会更加注意这一点。

发现别人bug的方法:第一次作业我测试的那份代码的输出部分比较奇怪,随便输入一组错误数据,都可能会同时输出多个ERROR,但令我不解的是这种输出居然会被评测机和助教认可,这让我对指导书的有效性产生了严重怀疑。

类图和一些度量参数:

作业二

自己的bug:第二次作业中,我吸取了第一次作业的教训,认真检查了细节,并且在课下利用随机数据进行了大量测试,提交之后,果不其然过了所有公测的测试点。原本我以为我的这份代码写得天衣无缝,可是在互测中还是被对方挑出了bug:当请求超过100条时,我的程序即使不输入RUN也会自动执行,这违背了指导书中“输入RUN开始执行”的描述,对于这个bug我错得心服口服,并暗暗告诫自己下次切不可再犯类似错误。

发现别人bug的方法:第二次作业我测试的那个同学代码写得非常漂亮和完善,我没有找到bug。

类图和一些度量参数:

 

作业三

自己的bug:第三次作业中,我吸取了前两次作业的教训,认真处理了输入输出的细节,可是这次我的核心结构出了问题,总的来说就是思想有些混乱。在课下用随机数据测试的过程中,我的代码总是会出现各种各样的bug,捎带部分写得一塌糊涂,对于每个bug我都得大动干戈地修改一番,这让我感到非常难受,并让我深深体会到了写代码之前认真构思的重要性。眼见提交截止时间近在眼前,而我已经无法改完所有的bug,无奈只好交了个半成品上去。然而,戏剧性的情况发生了:我的代码通过了公测全部测试点而且没有被找出一个bug,这可以说是非常幸运了。在提交作业之后,感到不甘心的我又重新修改了自己的代码,认真处理了捎带部分的细节,并发现了自己当时计算时间时候的疏忽。经过半天的修改,我终于改完了所有的bug,对此我感到非常欣慰,因为我终于为多线程电梯打下了良好的基础。

发现别人bug的方法:在我给那位同学测试的过程中,凡是超过五行的测试数据他的代码就有大概率无法得到正确结果(我针对错误分支树上的节点构造的数据,几乎都能给他的代码测出bug,不过最终出于友好原则只给他加了几个最严重的bug)。

类图和一些度量参数:

 

总结和心得体会

  三次作业写下来,我的感觉是:我写的代码竟然越来越面向过程了(这点从红字的增多也能看出来)……甚至一个类的一个方法就有好几百行代码。其实不止我这样,我身边有许多同学都面临着这样的问题。明明正在通过学习一点一点加深对面向对象编程的理解,可是一遇到稍微困难一点的题目时就又不由自主地使用了面向过程的结构。究其原因,可能是我们对面向对象编程思想的应用还不熟练,以至于无法用它解决困难的问题。不过,相信通过一个学期的学习与训练,我们都能对面向对象编程有一定的理解!

原文地址:https://www.cnblogs.com/tm47069551/p/8709475.html