当前位置: 首页 > 编程学习 > 软件工程 > 面向对象 > 正文

三次oo作业

2018-04-22 来源:博客园/7O

一、三次面向对象

多项式计算:

第一次作业虽然只是练习简单的字符串的匹配,但我需要从头开始学习Java和面向对象的思想。第一次面向对象写代码就会发现,难免又回到面向过程的思想上。我是先写完Java再写的C程序,虽然之后的C程序没有用正则表达式,稍微有些冗长,却感觉写起来顺手多了。这样的不习惯反而让我发现自己已经慢慢接受面向对象了,虽然整体上还是有一些地方使用过程化思想写的。这一次作业也让我进一步了解了正则表达式便利,but本次作业唯一的一个bug也是因为正则表达式。

了解了正则表达式之后,有些偷懒地,就像直接一次性匹配所有的输入,于是就输入了一串长长的正则表达式。在自己测试的时候分别测了20个项和50个数对两个边界,却没有同时测20个项每个项都有50个数对的情况,所以并没有发现自己的程序会因为迭代过深而没能挺过压力测试。这时候想插一句,try catch真是个好东西,虽然无脑try catch稍显暴力,却很有用。

第一次作业虽然花费了挺多时间,但代码比较简洁,复杂度也还可以。除了压力测试,并没有报出其他的bug。类图如下:

从类图可以看出,当时我对面向对象的理解并不是那么深刻,我一直觉得一个类就能搞定这些事了,最后是为了创造对象而写了一个Poly对象。从类图上可以看出,Poly对象只是简单地实现了多项式的加减以及最后输出多项式,将与多项式有关的操作都写到了这个类里面。通过这次作业,我感觉面向对象和面向过程比较显著地差异就在于:面向对象你是对对象进行这个对象范围所允许的操作,而面向过程是有一个公有的操作在那里,你去调用就好了。按照这种逻辑,程序一旦变得复杂起来,面向对象会让整个程序更加清晰,功能更加明确。

傻瓜电梯:

第二次作业开始写电梯,实现起来并不是太困难,却为第三次作业埋下了一个伏笔,能不能继承成为了一个十分关键的因素。先从类图看看我这次作业的实现: