Java作业第二阶段总结

0.前言

        总的来说第四次作业相对我而言是一次难度相对较大的一次作业考察了对正则表达式和继承的理解;其次就是数据的处理这是程序中最为关键的一部分;第五次作业更一步加深了我对继承的理解并引入了抽象的概念以及多态的考察;继承和抽象也出现提高了代码的复用;并考察了我们数学中的求导算法。第六次作业算是在第五次用到了Comparable接口和ArrayList考察比重较大的是对程序的封装让我对封装有了更加深刻的认识;从第四次到第六次的作业有存在着循序渐进和由浅入深的关系

1.作业过程总结

  第四次作业有三道题目分别考察了水文数据处理蒙特卡罗求圆周率以及简单的图形继承;难度最大的则是水文数据那道题其中包括数据的校验数据的处理正则表达式本来就是一个比较陌生的概念我也去为此学习了一下在我几番修改下程序能够完全运行起来不过后续的测试也存在少许问题比如输入错误数据输出格式就出现了问题导致自己不能通过所有的测试点。第二题的求圆周率的题目的背景是蒙特卡罗;其中考察重点是随机数我采用的是Random方法问题也就迎刃而解第三题相对来说较为简单目的是理解继承;这次作业用时最多作业提交当天才得以完成。

     第五次作业共两道题目题量和难度方面较为容易;考查的内容主要是掌握抽象类的使用以及继承和多态的使用方法所有定义的抽象方法都必须在子类当中进行重写我使用ArrayList来存放数据这样方便了很多对象存储。主要目的在于对继承多态的理解两个题目都是处理图形图形类型的对象有很多的类型这样就可以用到类与类的继承从而也为实现多态做了铺垫多态的作用就是降低程序的耦合度提高了程序的拓展性同时也实现了程序的开闭原则。第五次作业相对来说用时较少大概1天左右。

  第六次作业的难度居中前两道题基本相似要求是将输入不同的卡片并应用Comparable接口;实现卡片面积的排序和求和第一题和第二题唯一的差别就是输出的格式不一样第二题多了一个图形以及分组两道题都用了ArrayList来收集数据并进一步处理数据,Comparable接口的使用,方便了数据的排序需要对compareTo方法重写进而实现此接口的对象列表(和数组)能通过 Collections.sort进行自动排序。实现此接口的对象可以用作有序映射中的键或有序集合中的元素无需指定比较器。第三道考查的素数虽说是素数但是得分规则是根据程序所用的时间来计算的这里就涉及到了程序的效率也就是时间复杂度想提高程序的效率必须使代码中的算法最优达到最优则是不大可能的毕竟求素数的方法多种多样层出不穷只能尽可能使其最优。从中我认识到了不管是任何代码代码一定要简单并且复杂度低这样才能大大的提高效率节省了时间;第七次作业花费用时大概两天左右。

2.OO设计心得

1 OO设计的三大特性就是继承多态封装它们相辅相成继承为实现多态做了铺垫封装则是将类包装起来不让外界访问下面我来谈谈我对他们各自的理解。

   继承:继承是能单继承目的是为了重用父类的代码让编程更加靠近人类的思维当多个类存在相同属性时可以从中抽象出父类。从而降低了代码的复杂度提高了效率且便于维护。

   多态:是一种类型具有多种表现形态可以使类与类的继承关系好处是使程序灵活多样处理大量对象的运算和操作时提高了程序拓展性。

   封装:把对象的状态和行为看成一个统一的整体将二者存放在一个独立的模块中并将其包裹起来不让外界访问目的是保护成员属性不让类以外的程 序直接访问和修改;保护或者防止代码数据被无意破坏隐藏方法细节。

2 原则理解

单一职责:一个类的修改只能有一个被修改一个类只能负责一个职责修改一个类不能影响到别的功能。目的是降低类的复杂度提高代码可读性易于维护。

-闭原则:类对拓展开放目的便在于面对需求的改变而保持系统的相对稳定从而进一步的升级自己的程序功能。

3)自身对OO编程的理解

    就是把构成问题的事务分解成很多个对象然后建立对象并且编写其方法然后依次向不同的对象发送命令进而一步一步地实现它所需要的功能直到解决问题。

4)类设计心得

    面对不同的问题需要设计不同的类来进一步编写程序好的类易于编写代码以及理解。我觉得类不在于多而在于能够简便的解决问题并且提升代码的可读性。

3.测试的理解和实践

    测试对于代码来说是至关重要的好的代码一定能经得起测试以及考验。测试当然也需要好的测试用例同时我们不可能一味地去把所有的合理数据都输入一遍这样下来只会白白浪费掉好多时间。Junit测试能够大大缩短查找bug的时间每个单元测试用例相对独立便于测试是十分可行的。

4.课程收获

    这四周以来我感觉我的编程能力相对前几周以来有了很大的提高表现在我一看到题目瞬间思路就很清晰每次作业都会给出类图我都会进行修改使其处理问题更加容易。其次就是对OO编程有了更深一层的理解敲代码的速度相比之前快了不少感觉这些还远远不够希望在今后的学习中自己能有更多的收获。

5.对课程的建议

这一阶段作业难度适中题量可以酌情调配;

课堂内容讲解易懂内容丰富希望能在作业发布前讲授一些作业中存在但课堂尚未涉及的内容。

posted @ 2020-04-30 22:26  Zhf78  阅读(120)  评论(0)    收藏  举报