OO第二单元博客作业

前言

本次博客作业主要是对5-8周的大作业进行详细的分析与总结,这一阶段的作业难度相比上一阶段有所提高,并且很多题目要求同学要有一定的逻辑思维能力,并且要求我们有的细心学习态度,比如水文校验题的正则表达式那部分代码就需要我们非常细心的去写。
1.作业过程总结
①总结三次作业之间的知识迭代关系;

第一次大作业:

第一次大作业第一题主要是对正则表达式的运用,用一个水文校验题来训练我们的逻辑思维。

 

 

 

 

 

 

 

第一次大作业第二题是运用蒙特卡洛仿真方法求圆周率,这题没有很大的难度,稍加设计便可通过。

 

 

 

第一次大作业第三题是图形继承,主要考察类的继承,因为题目较为简单,这里不放图了。

第二次大作业:

第二次大作业第一题是对上一次作业图形继承的扩展,主要是pta上面的测试点格式要求比较严格,稍加注意输出格式,也不难,图就不放了。

第二次大作业第二题主要是对前面一次大作业中运用正则表达式的一次扩展,要我们对函数进行求导,也从另外一个角度来训练我们对于面向对象思想,让我们对类的设计更为合理,同时感受类的单一职责和类与类之间的关系。还有对于Java集合框架Collection,list等的运用,了解Java集合框架的原理。

 

 

 

第三次大作业:

 第三次大作业第一题主要是对前面图形继承题目的又一次扩展和运用,让我对类的封装,继承和多态有更进一步的理解。并且再一次对Override运用,并且了解到了Java排序算法内部的结构。

 

 


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

本单元图形继承系列题目让从浅到深了解了封装,继承和多态在Java类当中的运用。

 

第一次作业的图形继承中主要是对封装进行体会,并且运用了简单的多态,例如,Circle类继承自Shape类,虽然此时的Shape类并没有实质性的作用。

 

第二次作业中的Shape类此时已经是抽象类了,在他的子类当中必须要实现他的所有抽象方法。此时加深了对于抽象类的理解。

 

第三次作业则运用到了多态,例如Arraylist中对于类的操作时直接可以通过将对象申明为父类,通过父类统一的方法直接调用子类与父类共有的方法,避免了程序的复杂化。
③作业过程中遇到的问题及解决方法

 

第一次大作业水文校验题主要是对于类之间的结构缺乏逻辑思维能力,如何对大量数据分割并且储存在类和Arraylist中,在这一部分花了很长的时间,也别是正则表达式,String类,花了很多时间去掌握。

第二次作业主要是对Collection集合框架以及他的用法和原理不太理解,后面才慢慢的花了很多时间去理解和掌握。也正是这一块,让我对多态的运用,接口等有用较为深刻地理解。

第三次作业比较简单,中间有一个bug一直过不去,经过多次的测试,才发现是细节上的问题,要在以后尽量避免。


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

 

总体上是以n:n/2:3.5的比例(这里n用了多久就不细说了,说多了都是泪)

第一次作业花费的时间较长,不记得有多长,反正挺痛苦的,一直存在bug。

第二次作业在写题上大概花了两天的时间,主要是在查找Collection集合框架以及正则表达式资料以及理解上花了很长的时间。

第三次作业比较简单,花了大概三个多小时就完成了。


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

 

我们在编写程序时,特别是一些较大的程序时,一定要充分利用好单步调试和junit测试功能,保证每一步写完的正确性,尽管这样会花费很多的时间来写测试类和测试,但是当你遇到bug时,可以最大程度地节约时间,不然就会和我写第一次作业水文校验题目时,报错了不知从和找起,满满的奔溃。
2.OO设计心得
①对面向对象三大技术特性之间关系的理解

封装是保证类是一个类的基本要求,没有封装好的一个类不能叫做类,而继承使得程序更具有重用性,符合面向对象的思想,多态则是让类更具有统一性,在处理大量数据时能够和Arraylist以及其他集合框架下的类结合使用,使得程序更加的简洁,避免了杂乱无章,对后期代码的维护做好基础。
②面向对象设计的基本原则理解(单一职责原则及“开-闭”原则)

单一职责:

单一职责要求一个类执行一种功能,这样在程序某一个功能改变时,没有相互交错的类会使程序看起来更加易懂并且维护起来是变得更加简单。

开闭原则:

所谓开闭原则,就是面向修改关闭,面向扩展开放。这样可以使一个较大的程序在不破坏结构和大部分类时进行维护和修改。
③OO编程思维的理解
④类设计心得
3.测试的理解与实践

测试可以使程序在后期调试遇到bug要完善时更加地清楚哪一块出现了问题。
①测试对于编码质量的重要性

测试后经修改可以最大程度上保证代码在提交时地稳定性。
②查阅资料,假设使用Junit进行程序的测试是否可行
4.课程收获
总结这四周来在OO方面的教训及收获

提高编程最好的方式就是自己动手敲,这四周以来,每次作业上所花费的时间都很多,可能有时你花掉的时间并没有让你通过那个bug,但是自己对于这类知识的代码却会变得更加熟悉,这也是宝贵的收获吧。
5.对课程的建议
①第三阶段作业难度、题量的建议

第三次作业难度有所提高,在作业上需要花掉更多的时间,但是难度我感觉还可以再升一点,毕竟想要锻炼出更高的编程水平,就需要接受更难的挑战。
②课程内容讲解方面的建议

希望可以教授一些关于多线程知识和出一些运用多线程的题目。

 

posted @ 2020-05-01 14:26  CrazyCodeXiao  阅读(120)  评论(0)    收藏  举报