第二次总结

0.前言

第二阶段的作业有部分题目比较难第五次作业的第一题对正则表达式的应用以及多输入格式的判断及数据的处理还不是太清楚,对于有些java自带方法的使用还不清楚、一些接口哪些方法的重写应用时还需要查询。这次博客主要是对该阶段作业中所存在问题的一些总结、分析及对面向对象程序设计的理解和设计心得。

1.作业过程总结

每次作业的侧重点各不相同有正则表达式、ArrayList等各方面的应用,作业也越来越能体现面向对象的思想,不少的题都是由原来的题目升级改编而来,让我能通过前后对比更加深刻的体会到面向对象的封装、单一职责、继承等的优势及特点,继承多态给我的体会就类似于c语音中一个更加高级的结构体将一些对象放入子类就可更加方便的去使用、修改起来也更加简单,在写代码时也不需要去关注整个题目在写每个类时也只需要注意这一个类正确性。这一阶段的作业中几个题都是先定义了一个抽象的图形类,在通过继承等细化为具有长方形、三角形等更加详细的类。在作业过程中遇到的主要问题还是一些方法的实现,有些题不清楚某些方法的具体功能以及如何实现,其次是通过类构造的ArrayList一些使用及类型转换。作业中的主要时间花费也是在处理这一些数据中,现在初步学习Java对一些操作的可行性还不清楚,所以花费了更多的时间在验证可行性上。其次主要的时间就是修改pta测试点。在构造方法时也要先有一个大概的规划,计划好对应方法所承担的职责,避免后期的大幅度修改。逻辑错误也要多加注意这一点在许多方法同时调用时也最难检查出来,也最容易导致程序结果运行错误,在程序编写之初也要严谨构思全局、了解程序的目的,才能更好的去实现,否则可能需要大量修改甚至失败。

2.OO设计心得

面向对象三大技术特性分别为封装、继承、多态。封装就是将客观的事物封装成抽象的类,并且只能由特定的类或对象才能进行访问,但一般只做扩充不作修改(开闭原则)。继承是使得在使用现有功能的前提下,不需要重新编写一边原来的代码,只需要在父类的基础上进行细化扩展,(父类则用对象一类共有的特性来构造)。多态主要的形式就是覆盖和重载这可以消除类型之间的耦合关系。这三大特性都能让代码有更好的复用性,多态更能实现接口的复用。面向对象编程整体来说思维方式更加通俗更加符合人是思维方式,编写每个类时只要完成好该个类的功能不需要去对整个过程进行分析,在以后的团队合作完成时十分便捷,代码的复用性以及本身含有的方法也使得代码的编写更加简洁明了、程序的效率也能有进一步的提高。类的设计也要尽量符合该对象的特性,其中的变量类型、大小、作用域也要尽量适当,变量的定义域也要注意控制,既能保护数据,也可以尽快的回收。高层次类的构造应该尽量抽象一些,做到更加容易适应变化,以便后期的软件功能增加及升级需要,如果高层次的类不够抽象化,一旦软件需要增加功能就可能导致最高层次的类及其子类需要大幅度的修改,这大大提高了软件的更新及维护成本。在对象的使用时应尽量使用对象的组合减少使用继承,虽然继承类可以方便的实现及修改父类,但继承无法实现实时的修改父类继承的实现,后期对于父类的任何微小改变都可能影响子类,如果继承之后不能满足需要,就必须重写父类甚至替换父类,这样更新起来也将十分麻烦,限制了程序的灵活性和复用性,多使用对象的组合也更有助于封装的实现,也有更好的复用性。

3.测试的理解与实验

现在我们的测试都是在pta上进行,测试对于代码的质量提高有着非常重要的作用,我们可以考虑程序所产生的所有结果或可能产生的异常来进行编写测试程序,一般在正式软件开发中也需要编写测试程序,测试可以分为自动化测试和人工测试。自动化测试依赖写好的大量测试代码来保证质量一般使用JUnit来测试也就是白盒测试,人工测试依赖UI测试用例。人工测试很多情况下属于黑盒测试,很多测试并不能覆盖到。但人工测试对于软件开发来说却必不可少,有些功能也必须进人工测试才能确定是否正确。只有自动化测试和人工结合起来,才能更好的保证代码质量。但无论是人工测试还是自动测试都需要有大量的测试点,这也需要对代码的需求、功能及业务有着深刻的理解,这也需要测试代码编写人员的细心分析。现在的程序都比较简单使用JUnit来进行阶段的测试应该比较简便。

4.课程收获

通过这一阶段的学习进一步了解了面向对象思想及其特征,进一步掌握构造方法的技巧,学习了更多的方法及接口,例如自带的排序方法sort 和接口comparable等。这一阶段以来对ArrayList的操作并不熟悉将一个多个子类放入再进行操作各个类型的数据处理也不熟悉也需要在后阶段的学习中慢慢领会。

5.对课程的建议

第三阶段的题一般难度中等有个别题比较复杂题量合适,复杂的题希望老师可以再课堂上或者指导书中给出一定的提示或大概的说明。上课时各个Java自带方法可以讲解详细一些,作业出一些和课程联系紧密一些的题,既可以巩固上课所学,也可以让我们知道自己上课时没有学好的地方,反映出自己的问题,更好的解决,有时候觉得上课学的和作业的关系并不大,完成作业时需要进行查询也需花费较长的时间。

posted @ 2020-05-02 16:20  czd11  阅读(114)  评论(0)    收藏  举报