OO第二单元(5到8周)作业总结
前言:通过对五到八周作业进行总结,总结三次作业之间的知识迭代关系,如何通过作业逐步理解面向对象的封装性、继承性与多态性三大技术特性,对在作业过程中遇到的问题及解决方法进行描述,简述每次作业花费的时间比例,总结编程过程中的经验教育,并从中学会对编程过程的严谨性的认识及教训
作业过程总结:
1、总共在pta上完成了三次大的java作业,每次的作业层次明显,由浅入深,先懂得java的类之间的 关系后过渡到较为复杂的面向对象程序过程,先学会java的类与类之间的联系后再去掌握java代码编程、程序封装,对java面向对象有了一个更深的了解,随着时间推进慢慢的进行java的更深层次的学习,第一次作业主要针对对类的理解的编程能力,后两次作业由第一次作业作为基础,加深对java类与框图知识的运用,从而用更加灵活的思路去解答题目,用更加多样的方式去得到正确答案,运用更加丰富的知识去解答问题。
2、通过作业逐步理解面向对象的封装性、继承性与多态性三大技术特性:前两次作业主要是基本的java类与对象之间知识的理解运用,第三次作业着重于类与多态性的关系,尤其注重与java的框图思想,运用自己现学的知识去处理实际生活中存在的问题,用更加复杂的程序去求解问题,运用更加灵活的编程能力去解决面向对象过程中遇到的问题,通过三次作业的过渡,我学会了Java面向对象设计主要有三大特征:封装性、继承性和多态性,封装性它是将类的一些敏感信息隐藏在类的类部,不让外界直接访问到,但是可以通过getter/setter方法间接访问。继承性:子类通过一种方式来接受父类所有的公有的,受保护的成员变量和成员方法。多态性:程序在运行的过程中,同一种类型在不同的条件下表现不同的结果,这种不定状态的表现形式,可以称为多态。更加熟练的运用java知识中封装,继承,多态之间的关系显得尤为重要,把所学会的知识放在实际问题解决上显得更加重要,三次作业难度的渐渐提升,尤其是引入加分题后,更考验我们对java知识中多态与继承的理解与应用,面向问题时所用到的封装和继承时正是对面向过程到面向对象的过渡。
3、在完成作业的过程中,会遇到许许多多的不同问题,例如对类与类之间的联系运用不熟练,对子类与父类之间的关系模糊,如何去调用类,如何返回一个子类中的参数,面对这些问题时,单靠老师在课堂上的讲解是不够的,自己必须要培养自主学习的意识,通过在网上查阅资料,在网上翻阅视频,在代码网站上浏览别人的代码,渐渐的明白了一些自己困惑的知识,并且渐渐的开始掌握这些知识,通过课前的预习和在课后的实际操作,也能很大程度上提高学习的效率。
4、第二次是熟练的运用面向对象,第一次的作业与之前的作业有一定的联系,所以花费的时间并不算长,通过课上学会的知识以及在网上查询的资料,花费了3天左右完成,但习题上第二次和第三次作业,难度对比有了较大的提升,不论是在课堂上还是课后,都必须花费大量的时间去学习每个知识点,所以完成第二次和第三次作业花费时间是最长的,因为你不仅需要的是浅层次的知识,更重要的是需要对类之间的调用,封装都与要有一个整体的认识。
5、对编程过程的严谨性的认识及教训,编程的过程是一个完成独立项目的过程,每一步都必须用严谨的态度去完成,每一步工作的进行都离不开的是一个良好的编程风格,一个严谨的编程习惯会让你在Dbug时花费更少的时间,而将每一步都封装处理,可以更加方便你去找到错误,用多态将每个框图建立好联系可以让你去及时处理出现的问题。
OO设计心得
1、 对面向对象三大技术特性之间关系的理解:封装是我们可以并且有可能在方法中,添加自己的限制,保证数据的有效性;从某种程度上说,封装也提高了代码的健壮性、安全性。运用代买的继承性增强了代码的复用性,提高了代码的质量。对代码进行重载是多态的一部分,也是完成整个代码不可或缺的一部分。多态中定义的方法是在子类中覆盖父类的方法,方法出现在两个类中,以便于更方便的进行调用。
2、面向对象设计的基本原则理解(单一职责原则及“开-闭”原则):当一个类承担了过多的职责,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其它职责的能力。这种耦合会导致脆弱的设计,当设计变化时,设计会遭受到意想不到的破坏,因此开放-封闭原则是应该可以扩展,但不可修改面向对象设计必须要有一个更加完善的考虑方案,不能把每一步都与整体分隔开,而是把每个步骤用现有的编程知识联系在一起,用代码将每个模块都串联起来,运用面向对象的设计必须要有整体的意识,不能单方面去注重于片面的地方,面向对象的过程,也是对知识完善的过程,通过一步步的累积,最后达到自己想要的效果。
3,OO编程思维的理解:OO编程思维即是利用计算机的思维,运用计算机所能理解的文字去解决实际中的问题,而初级和高级的编程思维在于对计算机思维的利用程度,初级编程思维往往用的是便于理解但麻烦的思维,而高级编程思维可以使计算机思维得到最大化得利用,可以用最少的代码去解决同一件事情。高级的编程思维不单单只体现在代码的长度上,一个完美的方案是可以用相同的代码量去处理多个问题,用相同的代码方式去处理更为复杂的知识点。
4、类设计心得:对类的设计前就应该考虑到每个类需要承担的工作,每个类所解决的问题都是不同的,都是为最终的目的工作,类的设计也需要遵守六大原则,分别为单一职责原则、开闭原则、里式替换原则、依赖倒置原则、接口隔离原则、迪米特原则,遵照这些原则能够帮助我们更好的规范我们的系统设计和代码习惯,也能够让我们的代码分格变得更加简洁,处理问题也能更加的得心应手。
测试的理解与实践
1、通过对测试点不断的测试,我的编程能力能够得到一个更大的提升,通过测试,我能从中学会更多的更加丰富的解题方法,在测试的过程中锻炼自己理解问题,解决问题的能力,通过不断的处理自己答案,我也能够在第一时间想出更多不同的方法去解决同一个编程问题,用自己认为最简洁的代码去解决掉同一个问题,通过测试,能提高自己的自信心,同时激发自己的挑战性,让自己的得到解决问题的快感,通过测试,能够更快速从面向过程到面向对象过渡,也能更加方便的去体会到设计过程中的实际问题,并积累经验,为之后的编程道路打下基础。每次得到红色的正确标识,都能够让自己获得成就感,让自己在处理问题的过程中得到快乐,这也是对编程初学者得一种奖励。
2、查阅资料,假设使用Junit进行程序的测试是否可行:JUnit是一个Java语言的单元测试框架。它由Kent Beck和Erich Gamma建立,逐渐成为源于Kent Beck的sUnit的xUnit家族中最为成功的一个。 JUnit有它自己的JUnit扩展生态圈。多数Java的开发环境都已经集成了JUnit作为单元测试的工具。junit在实现自动单元测试的情况下可以大大的提高开发的效率,对于编程是可以应用的,并且junit有断言功能,如果测试结果不通过会告诉我们哪个测试不通过,为什么,而如果是像以前的一般做法是写一些测试代码看其输出结果,然后再由自己来判断结果是否正确,使用junit的好处就是这个结果是否正确的判断是它来完成的,我们只需要看看它告诉我们结果是否正确就可以了,在一般情况下会大大提高效率。junit的提前测试可以减少回归错误造成的时间消耗。
课程收获
通过四周的OO课程学习,我从初步了解到java的思想和学会基本的Java知识,到学会更加复杂的java内容,在不断的学习过程中同时也明白了课程的面向过程中封装,继承和多态在实际编程工作中的重要性。然而在学习这些知识的过程中,我也走了很多的弯路,如缺少独立锻炼的能力,对课堂知识理解的不够深入,缺乏自己实践的能力,面对新的作业时,看到不同类型的题目,总是会感到很迷茫,缺少对代码的敏感,面对比较难的题目时,想到的往往是先从最简单的开始,而不是去翻阅课件,翻阅课程笔记,回放直播的课程,而在业导致我的学习效率不够高,缺少了代码实践能力,导致解决问题的速度很慢。
对课程的建议
第三阶段作业难度、题量的建议:每一次作业的题型变化都很大,题量安排的很合理,但有时候看不到测试点的错误点,经常不能够及时的发现自己的具体错误,希望能把题目的错误提示点打开。
课程内容讲解方面的建议:老师讲课生动认真,对例题的讲解也很仔细。
浙公网安备 33010602011771号