java学习之路

0.前言

这是第二阶段的java作业总结,相比于第一篇博客可能有新的心得体会和大家分享。第二阶段的作业相比之下难度没有上升很多,只是更注重技巧性,更注重面向对象程序设计的特点的训练。老师是想让我们在第一阶段的基础上,深刻理解java的内涵,封装、继承、多态,和程序的可复用性,如果程序的复用性不强,那么作业就会花费越来越多的时间,这是得不偿失的。这一阶段的作业,我做的不是很理想,pta上有两题部分测试点没过,这是需要去改进的。总之“实践出真知”,继续努力。

1.作业过程总结

 

a.总结三次作业之间的知识迭代关系:

第四次作业有水文数据校验及处理,是这一阶段比较难的作业,需要用到正则表达式。为什么说难呢,是因为正则表达式虽然适合数据的校验,但是非常难以运用,初学者往往看不懂其中的格式运用,那一长串字符格式,弄得很让人头疼。正则表达式真是让人爱不得,恨不得。。。水文处理校验还要注意的是单一职责原则,这样就可以很清楚知道每一部分的作用,程序的复用性较好。蒙特卡罗方法求圆周率是一个求圆周率的技巧,非常好用。图形的继承让我用继承的方式完成作业,通过这个继承的使用,让我了解到继承的好处和使用方法。第五次作业主要是学会运用图形的继承与多态,继承是为了多态的使用 ,我是这样理解的。一元多项式的求解也是需要运用正则表达式,还有分割,解题思路就是把一元多项式分项。第六次作业相对来说比较简单没有花费太多力气就写完了,可能是图形之间可以相互借鉴。三次作业之间的知识迭代关系还是比较明显的,从程序的复用性,继承与多态的使用,都是循序渐进的,并不是一口气就能吃出个大胖子。

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

封装就相当于打包,别人不能随意更改你的代码,这样代码就有比较好的使用效果。任何一个好的java代码都应该有封装性,水文数据的校验及处理就比较好地运用了封装性,其他类需要调用这个类里的方法就必须通过这个类里允许其他类调用的方法来调用,这样封装性的效果就达到了。继承性从图形的继承可以得到很好的体现,图形类要继承shape类。然后从图形的继承与多态让继承得到发展,继承了shape的抽象类就要实现抽象类里的抽象方法,因为不同图形虽然都有共性,但是共性里面又有不同,这就用到了多态,这些题目的完成让我理解了继承与多态。面向对象的封装性、继承性与多态性,是java的三大技术特征,我们要好好掌握。

c.作业过程中遇到的问题及解决方法:

问题1:水文数据校验及处理对每一条输入数据的合法性校验

解决方法:用正则表达式,去网站上学习正则表达式的用法。

问题2:图形继承的输出格式不对

解决方法:调整了输出格式

问题3:一元多项式的求导分割不正确

解决方法:网站学习正则表达式与分割

问题4:求素数的方法不高效,不能处理大数据。

解决方法:使用更高效的算法埃式筛法算法。

d.每次作业花费的时间比例:

大概是4:3:2

e.对编程过程的严谨性的认识及教训:

比如格式的控制,正则表达式的运用,精度的控制,都是需要严谨的。每个测试点的通过,数据合法性的校验不能遗漏。

2.oo设计心得

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

封装性是为了更好地继承,而继承又是为多态做准备,多态是由继承延伸的,这三者相辅相成,不可或缺,组成面向对象的三大技术特性。

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

单一职责是指每个类每个不同的方法处理一个问题,把大问题分解成小问题,小问题再由不同的部分去实现完成,这就是单一职责,互不干扰,使用时只需调用,不必理解其中的原理。

“开-闭”原则是指面向修改关闭,面向拓展开放,因为java的特点之一就是复用性比较好,比较适合我们的使用习惯。面向修改关闭是为了避免程序因为某部分的改动而造成全局的较大改动,这显然是不好的,所以要面向修改关闭;面向拓展开放也是因为如此,这样就避免了因修改程序造成的巨大工作量,而我们只需要在原来的基础上进行拓展就好了,并不需要修改原来的程序。

c.OO编程思维的理解

面向对象程序设计语言,是面向对象的,复用性比较好,还有封装、继承、多态的特点,基于上述特点,java成为一种易于使用的语言。因为面向对象,体现了不同不对的不同特性。

d.类设计心得

类的设计也要体现单一原则和封装的特性,如果类与类之间有相同的特性,还会使用到继承和多态,可以说类的设计就是面向对象思想的体现过程。

3.测试的理解与实践

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

测试是必不可少的,测试会使得代码具有健壮性,因为代码能运行并不代表代码能符合要求。测试可以帮助我们找出代码的不足,完善代码。

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

可行。因为JUnit是一个Java语言的单元测试框架,专门为测试代码而使用的。

4.课程收获

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

教训很多,体会到了调试对于代码的重要性,会调试也可以省去不少找错误的时间。还有继承与多态的使用,注意格式的要求。也收获了许多,懂得了java的三大特性的使用,封装、继承、多态,并明白了这几个特性会让代码更具有面向对象的使用性,这些反而会简化代码,所以我们并不要害怕这些。

5.对课程的建议

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

作业难度可以适当加大,但是也不要太多。。。怕写不完,题量也要适当。。。因为我们主要是训练如何学会和使用java语言,难度并不是目的。(其实主要还是怕不能在规定时间内完成,写不完)

b.课程内容讲解方面的建议

希望老师在每次pta作业结束后,可以挑一点难度较大的作业讲解一下,让我们多理解理解。课程内容的话希望多讲一些实例。

 

posted @ 2020-05-02 13:53  无主之地主人  阅读(189)  评论(0)    收藏  举报