java的第二阶段作业总结

0.前言

关于此次系列作业(5-8周作业),我将对于此次的一系列作业进行一个简单的总结,将自己的作业心得与体会写下来

1.作业过程总结

相比较于前面的一单元的作业,难度有着大幅度的提升,很多地方从一开始无从下手,感到十分的困难。但是在我看来这一次作业的难度是以递减的,这些作业之间相互比较之下,我能够很明显的感觉到这次的第三次作业,相对而言是比较简单的,并没有很难解决的问题,但是也确确实实的遇到了自己不知道怎么去解决的问题所以自己通过朋友与同学的帮助,也自己在网上查询资料,帮助自己去解决有关于这方面存在的问题。其他俩次的作业中也有着难题,但是却是因为自己的能力有限,不能够将前面俩次作业全部都解决,只能够选择简单的题目写掉,也都是能够尽可能的完成了题目。总体而言难度是依次递减,但是关于程序设计OOP的思想正在逐步的强化。

关于本系列作业,多次使用到了ArrayList等一系列基本操作,将关于OOP设计逐渐的清晰,前面几个阶段的学习让我们学习到了对于对对象内成员属性的封装,学到了对于一个类的而简单继承的规律,如何使一个类具有多态性,将其实现接口,简单的学会了相关操作。简单的理解了面向对象的封装性,继承性与多态性三大技术特性。

有关于这几次作业中遇到的问题以及解决方法。

本次第一次作业

第一题就是一个难点,需要我们使用正则表达式,在毫无基础的情况下,我选择去网上查阅资料帮助自己解决这方面的问题,关于类的设计等都是依照题目指导书上的UML图示,但是自己还是能力有限不能够解决实际问题最后放弃,第二题是蒙特卡罗方法求解圆周率,最初我认为的难点就是理解题目中所给的主函数代码,以及UML图示中的类之间的关系,还有一个难点就是根据题目来设计随机数的计算,有关于Java中的随机数计算公式我上网查略了相关资料,也询问了同学帮助我去解决这个问题,相对于前面一题而言,这道题目较为简单,关于后面的图形继承,较为简单,最开始出现在继承父类的方法中存在着明显的问题,后面通过网上查询资料发现自己是因为并没有重写父类的方法导致出现语法错误,也加强了自己重载方法,重写方法的理解。总的来说这一次作业第一题难度较高,以下依次递减。

本次第二次作业

第一题是一个简单的图形的继承与多态的实现,需要我们计每一个图形的面积,以及通过面积进行排序,于是需要我们实现Comparable接口的实现,完成多态的思想。尽管如此,此次作业任然存在难度,使用ArrayList存放对象,将对象传入,创建一个数组储存对象的面积,第一次还不能够熟练度的使用ArrayList数组只能够这样投机取巧的解决问题,后自动排序,完成输出要求。第二题是对一个多项式求导,是这一次作业的难点依然是需要我们的正则表达式,虽然我根据UML图将程序大概的设计出来了,但是却任然毫无头绪,最终将题目搁置一旁。

第三次作业

前面俩次作业都是图片卡牌游戏,但是要求不同,但是总的核心却是一样的,在这里需要我们熟练的使用ArrayList,帮助我们问题,将对象放入,然后根据对像内的数据(面积)排序,而第二题需要我们分类,我们需要根据字符串进行分类输出完成输出需求,然后进行排序,在这里的排序与前面不同,需要我们分类后从大到小排序。最后一个关于素数的计算问题,要求我们代码的优化,在网上我查找到了相关资料,是关于多线程的解决方案,并不能够很深入的理解,学习到的一个简单方案就是筛选法,将范围内的数进行标记,但是任然不能够满足题目需求。

这次的作业花费时间明显的上去了很多,需要我们花费大量的时间,其中最为主要的就是以前我们没有接触过的正则表达式的应用,需要查询资料,还有类的设计等,都需要我们进行严格的设计,关于多项式求导也是如此花费了我大量的时间在上面,尽管题目没有做出来什么,但是我认为我还是在查询资料的过程中学习到了很多有用的东西,最后一次作业用的时间较少,能够很快的解决问题,并且完成需求,主要就是素数的问题难以解决,至今我也找不到好的方案帮助自己解决。

看到题目首先应该有一个大致的思路,不能简单的根据UML图帮助我们,要有自己的思维尽可能的多的自己思考,不依靠图帮助我们解决问题,自己多思考,利用OOP的设计理念解决问题。

2.OO设计心得

对面对对象三大技术特性之间的理解。我们在做一个程序时,需要多次使用到继承、多态、封装,依次来保证我们程序的稳定性。关于继承,我们首先要理解何为继承,简单的理解就是一种扩展,不仅能够实现父类的非私有方法,变量,还能够自己内部额外的增加,不需要我们重复的进行一个方法或者属性数据的重复编写。多态,就是能够将一个类简单的实现接口的重用,有俩种重要的方式,覆盖与重载,覆盖:子类重新定义父类的方法,重载:允许存在命名相同的函数,但是参数与返回值需要不同,包括数据类型或者个数。有关于封装,就是保证一个类中的数据不会到处出现,能够将自己的数据控制在自己的数据域内,保证了一个程序的简单运行,不会出现各种的问题,而关于继承与多态,都是建立在封装的基础上的。

面向对象设计的基本原则理解(单一职责原则及“开-闭”原则)。只需要我们满足一个类、方法、接口只有一个职责的原则,二关于“开-闭”原则,则是需要我们在源程序的基础拓展上满足能够保证源程序不可修改但是能够进行增添新功能的需求,以便后续的开发使用。

③ OO编程思维的理解。关于OOP设计就是以每一个对象为核心围绕三大技术特性,然后根据自己的思维以解决实际存在的问题,保证程序的准确性。

类设计心得。我认为最为重要的就是首先我们需要明确类中的属性,确认是否为私有或者可否继承,然后根据需求进行判断是否需要进行下一步的细致,这几次作业都是有着UML图的,所以能够较为明显的将类中主要的方法与数据写出,所以在自己以后中也应该这么去做。

3.测试的理解与实践

首先最为重要的就是能够帮助我们简单的判断这个程序是否是正确的,然后我们可以根据自己的理解来选择优化自己的代码,帮助自己更加有效的解决程序设计方面的问题。

有关于junit方面的测试,我并没有去实际上的使用,也仅仅是从老师口中有所了解,预计在以后可能会较为广泛的使用。

5.课程收获

关于OOP的设计思想又让我学到了一些新的简单的知识,也了解到了自己以前从未接触正则表达式,让我明白了一些难点,自己的一些问题也都表现了出来,不够认真与细心,在输出方面存在着缺陷,输出的字符串错误等,还有就是关于自己代码算法上的一些细节,不能够将简单的算法做好,较为混乱,关于自己代码书写方面的习惯并没有做好,希望自己以后能够做的够好。

6.课程建议

下一次的作业希望难度不会提高的太多,能够继续保持第二次大作业的情形,不会将每道题目设计的困难,关于每次题目的数量可以稍微根据题目难度选择是否增加。

希望老师有机会帮助我们指出一些题目的难点,帮助我们扩展一下题目的思路,能够对于我们进行自我的检查,以便后续更好的解决问题,教我们一些良好的代码习惯。

猜你喜欢

转载自www.cnblogs.com/star64/p/12819076.html