第二阶段作业总结

前言:

     本次作业对比与上一次作业,难度有所上升。上次作业是从方法到类的简单接触,这次作业主要是对类的考察,具体的有类的继承性,多态,还有一点正则表达式的使用。较上次,这次的作业难度更大,考察的范围更广,所需要融汇的知识更多。

一、    作业过程总结

1、总结三次作业之间的知识迭代关系;

作业5考察了正则表达式,类的继承,算是对这两个知识的初步接触,作业6通过两道题目又考察了类的继承与多态以及正则表达式的运用,加深了我们对这两个知识的运用,作业7两个大题均是考察类的继承与多态及接口。可以说作业5是初步接触,作业6是加强练习,作业7是最后的考试。通过作业让我们认识了解类的封装性、多态性和继承性以及接口的属性。

2、通过作业逐步理解面向对象的封装性、继承性与多态性三大技术特性;

  封装性是把一些重要的信息隐藏起来,不让外部能直接访问,保证了数据的安全,这三次作业的题目,需要传值的类很多,用private定义,提供访问成员变量的getter/setter方法让数据只能在类中访问。继承性,就是子类通过一种方式来接受父类所有的公有的,受保护的成员变量和成员方法。本次作业中的图形类继承就很典型,先是shape父类,再有circle,Rectangle等子类,使用extends关键词,让子类继承父类,让其继承父类公有的变量和方法,提高了代码的利用率。多态性是指同一种类型可以在不同的条件下表现出不同的结果,其实继承就可以很明显的表现出类的多态性,子类可以继承父类的方法变量,也可以对父类的方法进行重写覆盖这在图形排序卡片的题目中极其明显,

3、作业过程中遇到的问题及解决方法

  作业5第一题可以说是这次作业中最复杂、麻烦也难度高的一题了,因为对正则表达式不是很会,然后就有各种问题,需要一直查资料,看一些正则表达式的csdn的博客什么的来解决,但是最后还是没办法整体完成。然后再还有一个用Arrays排序的时候出问题,然后我重新设置了一个新数组来存数据才能正常的排序。

4、每次作业花费的时间比例

  作业5因为第一题写不来,然后就花了很长时间,大概花了两天,然后作业6因为格式的原因也花了一天半,最后作业7因为两天代码整体差不多,所以花了一天

5、对编程过程的严谨性的认识及教训

  给我印象最深刻的是一个数组,当时我用了一个计数器来算次数然后把那个次数当做新数组的容量大小,看着没什么问题不过运行的时候就出问题了,因为那个次数可能是0,或者说不存在,这就是当初考虑的不全面造成的,编码的时候要考虑的非常多,要非常严谨。

二、OO设计心得

1、对面向对象三大技术特性之间关系的理解

  封装性让类的变量不易被随意更改,继承性让类更加简洁,提高了代码的利用率,多态性和继承关系紧密,让程序变得更易于变化,这三种特性组合形成了面对对象安全,效率高,易于拓展等特点。

2、面向对象设计的基本原则理解(单一职责原则及“开-闭”原则)

  单一职责原则即就一个类而言,应该仅有一个引起他变化的原因,就像一个人只干一件事,这样提高了代码的效率,减少了耦合的风险。

  “开-闭”原则即对拓展开放,对修改关闭,这个对于系统的相对稳定有很重要的作用,在外部条件改变的时候不用推翻整个代码,而是拓展就好了

3、OO编程思维的理解

  OO编程思想把事物看成一个个对象,通过类、对象的关系去解决问题,类是一批量相似的集合,对象是独特的个体,类的封装,继承,接口的运用使得代码的运行更接近与事物在现实世界的运行过程,继承让代码变得更简短,多态让代码更易于变化,

4、类设计心得

  类的数据一定要私有化,这样对代码的安全性有保证,然后要对数据进行初始化,不然后面使用的时候可能出现编辑错误,然后要遵循单一职责原则,减少耦合,让类更加高效,类名一般取他职责的名称,不然到时候容易搞混。

三、测试的理解与实践

1、测试对编码质量的重要性

  测试对于编码质量十分重要,一个程序编完,总会有错误,测试能让我们找到代码中的错误与漏洞,使代码更符合要求,其次通过测试结果,我们能得出代码质量的评价,想运行时间什么的,就想那个附加题,虽然题目简单,但是如何达到最好的效果,让代码质量达到最佳,就体现在运行时间上,时间短的算法就很棒,如果运行时间过长就要考虑是不是需要优化算法了,现在各大软件尤其是游戏都有测试服,就体现了测试对编码质量的重要性,有些bug只能在实践中发现。

2、查阅资料,假设使用Junit进行程序的测试是否可行

  Junit是一款由Erich Gamma(《设计模式》的作者)和Kent Beck(极限编程的提出者)编写的开源的回归测试框架,供Java编码人员做单元测试之用。这种测试是一种白盒测试,程序员知道被测试的软件如何(How)完成功能和完成什么样(What)的功能。

四、课程收获

总结这四周来在OO方面的教训及收获

  这四周对于类的学习,了解了类的三大特征,封装性、继承性,多态性。对于类的书写也更加熟练。

五、对课程的建议

1、第三阶段作业难度、题量的建议

  第三阶段的作业难度应该和这次差不多,或者加些难度,有些挑战,也更易于我们的记忆,题量三题就很好。然后题目难度希望是递加的,最难的放开头就不太好。

2、课程内容讲解方面的建议

  发到群里的代码最好是上传到群文件里,不然会被消息冲掉,然后代码最好开头加个名字备注啥的,这样找的时候一眼就可以知道内容,然后对比较难的内容,可以先讲一个简单的例子,再讲个稍微复杂的,这样更容易理解

posted @ 2020-05-02 21:42  779842968  阅读(119)  评论(0)    收藏  举报