自从学了北航的计算机以来,慢慢的懂了一个道理:计算机这门课程中的某些专业课,听别人说有多难你是感觉不来的,只有当你自己亲身体验过那种煎熬之后,才知道什么叫感同身受,什么叫恐怖如斯。
以前对oo这门课就略有耳闻,但是很多学长都以为它的难度不如计组,毕竟有“计组寡,编译鳏”的说法。但是我想说的是,这样的说法真的是小觑了oo这门课。我自己其实比较冲淡懒散,所以提前并没有对这门课有任何的了解,导致从开学第一周就有一点手忙脚乱之嫌。
第一周的周五,纪老师布置完第一次的oo作业之后,当时可能心态还没有从假期的闲适之中解放出来,所以心理上还是没怎么注重,轻轻松松的过完自己的双休日,直到周一......打开指导书,发现真的是对面向对象一无所知。就这样痛苦的学习开始了。
第一次的作业是多项式的加减,记得纪老师的原意是:第一次作业非常简单,就是为了让大家练练手。但是自己在做的时候真的毫无这种感觉,唯一的感觉就是,**,好难啊。因为刚开始接触面向对象的编程,一时之间,思维还停留在面向过程的阶段,导致自己也在纠结,到底什么是对象,而过程又该是什么样子,就在这样迷迷糊糊的过程中,仓促的写完了自己的第一次oo作业,也算是迈出了第一步。
刚开始对于Java这门语言最大的感觉就是,库函数真的太强大了,用起来非常方便,但是这样也带来一个新的问题,就是记忆起来比较麻烦,很多东西都不是书本上所能找得到的,需要你自己去网上查询,去学习,这样的话,我认为,难免不够系统,难怪有的老师会说这么一句话给学习Java的新手:Java这东西啊,你一辈子都学不完。
第一次作业的公测结果让人有一点小小的难受与费解,因为由于ERROR没有全部大写的原因,导致很多测试点都没能过。助教随后给出了解释,这也让我懂得了学习是个严谨的过程,要严格遵从指导书的描写,否则吃亏的只能是自己。
不止如此,第一次作业还有许多其他的问题:比如没有自己的正则表达式写的并不完善,导致自己在处理一些超长的多项式加减的时候,就会出现错误;再比如自己的一些格式写的并不规范,这样阅读起来很不方便;还有就是第一次的时候完全是按照过程式的写法,一个类完成了所有的功能。
第二次的作业开始慢慢理解了什么是类,什么是对象以及如何定义一个对象的类。在这样的思考之下,就开始动笔写第二次的作业,其实我觉得,第一次和第二次作业对于算法的考察其实并不复杂,第一次需要识别多项式,然后拆分,进行加减运算,之后进行输出就够了。而第二次的作业最重要的一点就是对于同质的判断以及对于时间的计算,这对于傻瓜式电梯来说,并不复杂,只需要将同质的请求剔除,并且把已经有的完成时间存储起来,在后面进行比较就够了。
上面就是我写的类以及关系图,但是比较尴尬的是我也不知道为什么该有线连接起来的地方没有连接起来。
至于第三次作业,就非常难受了,首先经过一波对于接口和继承以及向上、向下转型的学习,这一部分是面向对象的几大特征的一部分,理解起来还是比较麻烦的,但是当我随后打开oo第三次作业指导书的时候,傻眼了讲真的,10页的指导书,但是当我耐着性子往下看的时候,觉得以前有一个同学提的建议还是非常好的,就是希望助教学长学姐能够自己仔细阅读以下指导书,然后将其中的思路理顺,以及把其中的言辞以及要求说清楚,这样的话我相信会为他们省去不少的时间:因为这样可以避免后期很多人因为指导书的不清晰而一直诘问助教该如何理解语意的问题。
第三次的作业我并没有完全完成,我打算在这几天的时间内重新修缮一下,在之后的博客之中会贴出来。
oo之路还很漫长,我会亦步亦趋走下去。