学OO学了一个月,我感触良多。虽然这是咱们第一次系统地学习面向对象,但其实从大一开始咱们就已经接触了这种编程思想。在咱们学Python的时候,就已经接触了类和对象的概念,只不过当时不做为重点内容而在教学中一带而过;在大二上学期,有些同窗选了Java程序设计这门选修课,能够说也是提早接触了面向对象的编程思想。本学期开学以来,经过这几节课以及三次做业,我对面向对象编程思想有了更深入的理解。编程
做业一数据结构
本身的bug:第一次做业中,我有一个公测点没有过,缘由是输出的格式没有考虑周全,在特定数据下竟然会多输出一个逗号,这能够说是很是低级的错误了,可能我已经习惯了数据结构课的那种标准化的测试数据,那时候对程序健壮性的要求不是很高。此次的错误源于一个很差的代码风格,致使在随机输入时可能会出现不符合要求的输出。在从此的编程中我会更加注意这一点。多线程
发现别人bug的方法:第一次做业我测试的那份代码的输出部分比较奇怪,随便输入一组错误数据,均可能会同时输出多个ERROR,但令我不解的是这种输出竟然会被评测机和助教承认,这让我对指导书的有效性产生了严重怀疑。并发
类图和一些度量参数:学习
做业二测试
本身的bug:第二次做业中,我吸收了第一次做业的教训,认真检查了细节,而且在课下利用随机数据进行了大量测试,提交以后,果不其然过了全部公测的测试点。本来我觉得个人这份代码写得完美无缺,但是在互测中仍是被对方挑出了bug:当请求超过100条时,个人程序即便不输入RUN也会自动执行,这违背了指导书中“输入RUN开始执行”的描述,对于这个bug我错得心服口服,并暗暗告诫本身下次切不可再犯相似错误。spa
发现别人bug的方法:第二次做业我测试的那个同窗代码写得很是漂亮和完善,我没有找到bug。线程
类图和一些度量参数:设计
做业三对象
本身的bug:第三次做业中,我吸收了前两次做业的教训,认真处理了输入输出的细节,但是此次个人核心结构出了问题,总的来讲就是思想有些混乱。在课下用随机数据测试的过程当中,个人代码老是会出现各类各样的bug,捎带部分写得一塌糊涂,对于每一个bug我都得大动干戈地修改一番,这让我感到很是难受,并让我深深体会到了写代码以前认真构思的重要性。眼见提交截止时间近在眼前,而我已经没法改完全部的bug,无奈只好交了个半成品上去。然而,戏剧性的状况发生了:个人代码经过了公测所有测试点并且没有被找出一个bug,这能够说是很是幸运了。在提交做业以后,感到不甘心的我又从新修改了本身的代码,认真处理了捎带部分的细节,并发现了本身当时计算时间时候的疏忽。通过半天的修改,我终于改完了全部的bug,对此我感到很是欣慰,由于我终于为多线程电梯打下了良好的基础。
发现别人bug的方法:在我给那位同窗测试的过程当中,凡是超过五行的测试数据他的代码就有大几率没法获得正确结果(我针对错误分支树上的节点构造的数据,几乎都能给他的代码测出bug,不过最终出于友好原则只给他加了几个最严重的bug)。
类图和一些度量参数:
总结和心得体会
三次做业写下来,个人感受是:我写的代码居然愈来愈面向过程了(这点从红字的增多也能看出来)……甚至一个类的一个方法就有好几百行代码。其实不止我这样,我身边有许多同窗都面临着这样的问题。明明正在经过学习一点一点加深对面向对象编程的理解,但是一遇到稍微困难一点的题目时就又不禁自主地使用了面向过程的结构。究其缘由,多是咱们对面向对象编程思想的应用还不熟练,以致于没法用它解决困难的问题。不过,相信经过一个学期的学习与训练,咱们都能对面向对象编程有必定的理解!