OO第二周期作业总结

0.前言

  主要说明本次博客针对的作业情况

1.作业过程总结

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

  第四次作业分别是对字符串处理类以及正则表达式对输入字符串数据进行合法性校验及计算、蒙特卡洛仿真方法、类的继承知识点的运用。

  第五次作业则是对类的继承、多态性及其使用方法。

  第六次作业要求掌握类的继承、多态性使用方法以及接口的应用,附加题考察算法的优化。

  这三次作业开始是对类继承的初步使用,后面难度逐渐增大,类与类之间的关系复杂化,继承和接口等。

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

  根据题目要求和UML类图写代码时,类里面的属性需为私有(private),其它类不能直接使用这个属性,须通过get方法间接获取,这就体现了对象的封装性;通过一个类继承(extends)自另一个类,子类重写父类方法,子类可以继承父类的所有属性和方法,但不能直接访问私有成员,继承为单继承;通过接口(interface),一个类调用接口(implement),让类可以同时继承父类和接口方法,以统一的接口来操纵某一类中不同对象的动态行为。

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

  (1)水文数据校验及处理:

    a.一直纠结于数据输入时和获取后的存储形式

    

     b.数据输入后,一行不同数据需要空格,去除空格后前一行最后的数据和后一行第一个数据会叠在一起

     一直没有得到解决,就过不了测试点,老师上课讲解之后就明白了

    

        

  (2)蒙特卡罗方法求圆周率

    a.计算π的方法一直结果为0,double 数据问题

    

     (3)排序接口

    

④每次作业花费的时间比例

  9:3.5:5

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

  所有的作业中,水文数据校验及处理中相对的难度较高一些,正则表达式没用对出现错误,测试点都不能过,另外类与类之间的关系,编程中的每一步都对代码能否运行成功起关键性作用,编程之前要先捋清思路,明白大致方向。

2.OO设计心得

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

  面向对象三大技术特性:封装、继承、多态

  我认为这三大特征是相交的,相辅相成,,封装和继承可以单独使用,而多态需要在继承的基础上,都是为了代码的安全性、重用性和可维持性。

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

  单一原则:一个类只完成一件事,只有一个职责。

  “开-闭原则”:“对扩展开放,对修改关闭”,不改变原有代码,进行组件扩展。

③OO编程思维的理解

  将问题进行分解,但不是按照平常思维,步骤分解,而是对问题的对象提取出来,其中包含的属性和方法,以及对象之间的关联。

④类设计心得

  类设计时,首先要明确类需要完成的职能是什么,其中的属性和方法,当几个类都具有相同的属性和方法时,可以使用类继承,需要其它的方法时,可以使用接口。画出UML类图能提高编程的效率。

3.测试的理解与实践

①测试对于编码质量的重要性

  测试是检测代码运行结果是否符合要求的关键标准,通过测试才能大致了解在哪些功能的地方出现了问题,后续对码进行修改有目的性。

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

  可行,Junit是一个开放源代码的Java测试框架,用于编写和运行可重复的测试,能够很全面地编写测试代码。一般都是针对一类写测试代码,再测试类中的每一个方法是否能够正确运行,最后写测试程序测试整体功能。

4.课程收获

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

  这四周来这正则表达式那一块花费了较多时间,需要再加强运用;编程就是在不断地修改bug的过程,需要思路清晰明确,在写代码时,new出对象后经常报错,我在问题的分解以及类的使用熟练度明显得到了提高。

5.对课程的建议

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

  希望第三阶段的作业做到难度递进吧,难度分散在每一个类中,题量每次作业2-3题都是可以的。

②课程内容讲解方面的建议

  还是需要老师能在讲解pta作业后,能够发给我们一些较好的代码,让我们能够对比自己的代码,找出思路中的不同或解决一个小问题的方法,从而做出改进。

猜你喜欢

转载自www.cnblogs.com/zyqstudying/p/12797447.html