OO第一单元(前四周)作业总结
一.前言
到目前为止我们接触Java语言也已经有一段时间了。经过这一段时间的学习和了解,对于Java语言取得了初步的理解。
当然再这一过程中我们也碰到了许多问题,有学习上的,也有作业上的。接下来就让我对于一段时间再Java的学习上做出一
些总结。
二.作业过程总结
1.这四周我们总共写了三次作业。作为入门级的作业,这三次作业都是相互联系,层层递进,让我对于Java语言逐步了
解,条例清晰,没有让我处于一脸懵的状态。首先第一次作业和我们以前学的C语言相差不大,只是做了一些基本的变换,题
目的难度都不算大,用我们以前学的知识完全可以解决。只不过是将格式从C语言转化为Java语言风格罢了,而且变化并不大,
这对于一个萌新来说是很友好的了。然而第二次作业则是再第一次作业上的延申,我们不再是将所有代码一股脑的全放在一起,
而是学会类的用法,将程序分模块化进行。通过类方法调用让程序模块清晰,运行流畅。至于第三次作业则是在类的使用上再
度延申,让我们对于类的使用有了更加深入的了解。至此,我们的的方法不再是全部放在Main方法当中,我们将创建一个新的
类,通过引用变量调用其他类当中的方法来达成目的。我们对于类的使用有了更加深入的了解,学会了用类对于一个问题的面
向对象设计。
2.接下来我来谈谈作业是如何从面向过程过度到面向对象的。刚开始就比如第一次作业,并没有什么要求,按照我们的老
方法,我们只需要根据题目的意思,将所需步骤一步步写下来,最终以达到解决题目的目的就行。对于这种题目,我们所注重
的只是解决问题的步骤,即我们所面对的是解决这个问题的过程。然而到了后面两次作业,我们逐渐开始将程序分模块运行,
不在统合在一起。当我们开始使用类时,我们所注重的不在是这个程序的步骤了,而是它的功能。每一个类都包含着同种属性
的对象,每个类都行使这自己的功能,他们与主方法相互区分开来,但有紧密联系。主方法依靠类来行使相应的功能,类通过
主方法来方法的调用。
3.第一次作业并不难,但是却出现了一些小问题,在测试过程中,总是有一两个小测试点通不过,这是我在考虑步骤时不
细心引起的,在经过一番审视后及时改正过来了。至于第二次和第三次作业则是由于对类方法的掌握不够熟练,导致一些编译
上的错误,在再次加深学习后也已经改正过来了。总体来说这三次作业巩固了我这段时间所学的知识,加深了我的记忆,结果
还不错。
4.刚开始的话写作业要花费很多时间,但随着时间过去,我也慢慢熟练起来了。看见题目后可以先想出一个大纲,然后通
过逐步的调试让它趋于正确。当然,随着学习进度的加深,后面的题目越来越难,所需要的时间也就越多。
5.在写完作业后我发现一个很大的问题,那就是因为在写代码前没有认真做好规划,在写代码时还会因为一些粗心导致测
试点通不过,最终反复检查浪费了很多时间。本来题目该怎么去写都是知道的,但是因为在过程中的粗心,导致我不得一遍又
一遍的检查,平白无故花了更多的时间。从今以后我在写代码的时候一定要严谨,否则最后倒霉的还是自己。
三.OO设计心得
1.此次我们的学习是一个从面向过程到面向对象的过度,接下来我就来说说二者的区别。面向过程就是分析出解决问题所
需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了;面向对象是把构成问题事务分解
成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。下面有个例子
形象的概括了一下二者:
用面向过程的方法写出来的程序是一份蛋炒饭,而用面向对象写出来的程序是一份盖浇饭。所谓盖浇饭,就是在一碗白米饭上
面浇上一份盖菜,你喜欢什么菜,你就浇上什么菜。我觉得这个比喻还是比较贴切的。蛋炒饭制作的细节,我不太清楚,因为
我没当过厨师,也不会做饭,但最后的一道工序肯定是把米饭和鸡蛋混在一起炒匀。盖浇饭呢,则是把米饭和盖菜分别做好,
你如果要一份红烧肉盖饭呢,就给你浇一份红烧肉;如果要一份青椒土豆盖浇饭,就给浇一份青椒土豆丝。蛋炒饭的好处就是
入味均匀,吃起来香。如果恰巧你不爱吃鸡蛋,只爱吃青菜的话,那么唯一的办法就是全部倒掉,重新做一份青菜炒饭了。盖
浇饭就没这么多麻烦,你只需要把上面的盖菜拨掉,更换一份盖菜就可以了。盖浇饭的缺点是入味不均,可能没有蛋炒饭那么
香。到底是蛋炒饭好还是盖浇饭好呢?其实这类问题都很难回答,非要比个上下高低的话,就必须设定一个场景,否则只能说
是各有所长。如果大家都不是美食家,没那么多讲究,那么从饭馆角度来讲的话,做盖浇饭显然比蛋炒饭更有优势,他可以组
合出来任意多的组合,而且不会浪费。盖浇饭的好处就是”菜”“饭”分离,从而提高了制作盖浇饭的灵活性。饭不满意就换饭,菜
不满意换菜。用软件工程的专业术语就是”可维护性“比较好,”饭” 和”菜”的耦合度比较低。蛋炒饭将”蛋”“饭”搅和在一起,想换
”蛋”“饭”中任何一种都很困难,耦合度很高,以至于”可维护性”比较差。软件工程追求的目标之一就是可维护性,可维护性主要
表现在3个方面:可理解性、可测试性和可修改性。面向对象的好处之一就是显著的改善了软件系统的可维护性。
2.面向对象设计的基本原则理解:面向对象设计有五大原则
S = 单一责任原则
O = 开闭原则
L = Liscov替换原则
I = 接口隔离原则
D = 依赖倒置原则
这五大原则也只是我在网上找到的,我本人并没有太多了解,在这里就简单说一下。
S原则:尽量把复杂的功能简单化,把简单的功能细节化,人性化,这才是对程序设计最原始的初衷。
O原则:对扩展开放,对修改关闭。
L原则:子类型必须能够替换它们的基类。
I原则:用户不应该被迫依赖他们不使用的接口。
D原则:高层次的模块不应该依赖于低层次的模块,而是,都应该依赖于抽象。
3.oo(object-oriented):基于对象概念,以对象为中心,以类和继承为构造机制,来认识,理解,刻画客观世界和设计,构建相应的软
件系统的一门方法;本意----模拟人类的思维方式,使开发,维护,修改更加容易 。
四.测试的理解与实践
1.测试对于编码是很重要的,它为了保证编码完整性与正确性的重要步骤,如果没有这个步骤,编码的质量就没有保证,这
样的话,所写的代码就毫无用处,试问谁还愿意使用这样的代码呢?所以我们在编码是绝对不要忘记测试。
2.假如让我设计测试用例,首先我会测试代码功能的完整性,再用代码测试一些特殊的例子,以确保其通用性。在确保其各
功能都能使用后,才会推广。
五.课程收获
这四周的课程使我收获良多,我明白了对待代码要严谨,不能掉以轻心。对于类的使用要慎重,要分得清使用方法,不能错
用,乱用。在学习OO时,不要受OP的影响。
六.对课程的建议
希望老师可以多讲解一些例题,错题。
19201621-肖俊杰

浙公网安备 33010602011771号