0.前言
这次作业针对的是oo程序设计第二单元(5-8周)的作业,在整体当中属于第4到第6次作业。
此三次作业的知识要点为:继承类,多态性,字符串,结构类,接口类。
此三次作业的时间为20.4.12-20.4.26。
1.作业过程总结
①总结三次作业之间的知识迭代关系
第四次作业作为这三次作业的第一作,引出了继承类这个全新的概念,并且通过图形分类这个十分经典的例子让我们能够从日常生活的角度去理解抽象的继承类。
解决了从无到有的问题之后,后续知识点如多态性,抽象类,接口类的学习相对来说方便了许多。很多东西和继承类相似。第五次作业则是仅学习了抽象类的内容。作为补充则是学习了一个相对于此内容无关的字符串提取识别。虽然无关,但是也是十分关键的内容。
到了第6次作业时,基本已经完全学会了对于extends以及implements的使用,作为一个完整的工具可以被自由运用。由此,我们的java程序脱离了单纯的串性连接方式,而是真正向集束模块迈出了一步,从而拥有了更多的普适性和实用性。自己写的代码也不再只能为自己所用,而是有了规范和与他人协调的可能。
②如何通过作业逐步理解面向对象的封装性,继承性与多态性三大技术特性
第四次作业指明了封装性的要点在于何处。通过特征指明,和private保密,以及set(),get()函数来进行封装,让一个最底层的类看起来更像一个工具,一个器具,在使用上和解构上更为方便。这个private更像一个包装。蒙特卡罗求圆周率强制的private让我控制住了直接修改变量的冲动,学会了使用这个标准。
而第五次作业则是更多关系到继承性。从最开始的用处来讲,继承可以减少重复劳动,减轻末端程序员的劳作时间,但是继承作为个人开发来说,更好地提供了一个模板,提供了一个规范,在子类进行编写时,更好地方便调试和维护。
多态性则是在第五次作业和第六次作业都有体现。虽说第五次就已经涉及到重写了,但是第六次作业涉及到super和重写自己不熟悉的文件。更加考验心理素质?(误)。一般我认为,在学会抽象类的时候,多态性就已经能理解到八九不离十了。剩下的只是对于实际应用的理解而已。
③作业过程中遇到的问题及解决方法
关于封装性,继承性,多态性这些内容,由于不理解它们之间内存替换和调用的关系,在一开始也就是第四次作业时我总是小心翼翼地去使用自己编写的函数并且一步一步调试,生怕有函数没有按照我的预期运作。不过,当我理解了只要用类里面自带的函数,也就是以隔空指令的方式去运作的时候,就不会再担心这样的情况了。事实上,我认为目前我们只需要掌握这一种运作方法。因为我们的原则是遵守代码安全,而不是打破代码安全。
第七次作业的一元二次求导题目我没有一个明确的思路,不知道怎样才能100%识别每一项,从而导致经常出现识别出错,出现无谓的+号,甚至于不知道到底应该怎样去安排array。在这方面,我请教了同学,他们给出的思路从数学角度来说更好,比我这种略带主观的思路容易编程。
④每次作业花费的时间比例
第四次作业:7小时
第五次作业:6小时
第六次作业:10小时
⑤对编程过程的严谨性的认识及教训
这几次作业让我认识到在不同的类之间应该有个既定的标准,这样子才能方便不同程序员设计的代码高效交流。
2.OO设计心得
①对面向对象三大技术特性之间关系的理解
三大特性最主要的地方在于商业应用层面更加省时省力。因为商业化的最大特性就是沟通交流和标准化应用吧。
②面向对象设计的基本原则理解(单一职责原则及“开-闭”原则)
同上,在这样的思想之下,类和类之间绝对不能互相影响,就像日常我们一个小组成员处理任务一样,自己的事情自己干,不能越俎代庖。所以,在相关的类当中事先写好编辑用的方法,在需要的时候调用它是最为理想且不留逻辑问题的选择。这是编程进化来的结果。
③OO编程思维的理解
因此,就像一部手机,一台电脑由外壳和内元件组成一样,对于oo编程来说,最重要的不是如何完成,而是能完成什么。没有人关心过程而是最大化关心结果。
④类设计心得
通过设计类的职能,一开始困难的问题开始变得简单起来。通过拆分整个程序的实现难点,让程序看起来更容易完成了。
4.课程收获
这四周,在名为eclipse的舞台上,我学到了很多技巧和手段去编写程序,去完成各种各样的简单工作。但是,只懂得在舞台上表演是不够的,下个星期对文件的运用能让我学到更为实际的操作,不再是没有实际用途的东西。我这样子相信。
对于类的学习,让我走出了c语言简单的逻辑思路,能让我将自己的目标放得更高更远。一些复杂的操作,只要合理分配,在接口处严谨对接,一切皆有可能。
5.对课程的建议
①第三阶段作业难度,题量的建议
第三次作业,希望能减小作业的难度。我希望作业的目的是检验所学,检验基础知识的掌握,而不是花费过多时间去考虑算法。第四次作业中,水文题的难度过高,工作量过大,涉及统计和传递的内容工期较长,我相信很多人直接选择了放弃,即使没有放弃,也没有做完。这种情况不算少见。尤其是最近,其他科目的时间占用较多,一些科目开始期末考试,更没有空余时间了。
题量方面,无需进行改变。现在的题量已经足够让我回顾自己所学了。如果再少,那么也起不到练手的作用,可能基本功会慢慢丢掉。
②课程内容讲解方面的建议
希望能够尽早放出视频回放,这样子当堂小作业如果遇到困难的时候可以直接看回放会少很多辛苦。