Java第二阶段的作业(共三次)总结博客
0.前言:
本博文针对的是对于写Java课程作业中我的一些心得体会及对于Java面向对象思想的封装性、继承性和多态性三大技术特性的理解。是第二阶段作业(共三次小作业)的一个总结性博文,下面是我的总结。
1.作业过程总结:
(1)、三次作业之间的迭代关系
第一次小作业是正则表达式、类的单一职责以及简单的继承的运用。体现了Java面向对象思想的封装性、继承性,并为多态性打下基础。
第二次的小作业是类的继承性以及多态性的体现其中还涵盖了正则表达式。正则表达式对于数据的检验十分的高效,所以本次作业致力于学懂弄懂正则表达式并理解多态性。
第三次小作业就是多态性加Comparator接口以及Collections、ArrayList的结合运用其中有一个加分题涉及了算法的优劣突出了代码的质量。
这三次小作业是一个递进的关系,每一次的小作业都具有一定的难度,但同时又不会让你无从下笔,它需要查阅一定的资料以及结合上课的内容才能予以解决。
(2)、如何通过作业逐步理解面向对象的封装性、继承性与多态性三大技术特性
此阶段的三次作业是递进的关系,是一个循序渐进的过程。第一次小作业是类的继承性以及多态性的体现其中还涵盖了正则表达式这样下来加深我们理解面向对象的封装性还有继承性,第二次小作业就是类的继承性以及多态性的初步体现,通过继承来理解多态,第三次小作业是深入理解并运用面向对象的多态性。如此层层递进,让我们理解面向对象的封装性、继承性与多态性三大技术特性。
(3)、作业过程中遇到的问题以及解决方法
第一次小作业对于第一题正则表达式的运用,整个题目是具有一定的难度,整个题目我研究了两个小时将其理解但是由于对正则表达式的比较模糊所以我主要是进行了相关资料的百度,接下来的就是蒙特卡罗方法求圆周率有一个算法怎么测试都不对,我就去Eclipse进行了调试发现return sum *4/n具有问题改为eturn sum *4.0/n予以解决。
第二次作业中遇到的问题比较少,难度也不是特别大主要涉及的是类的继承性以及多态性,重点是思路问题,出现了一个输入0得出
Original area:
Sum of area:
Sorted area:
Sum of area:
后将面积定0.00予以解决。
第三次小作业是面向对象思想多态性的深入运用,是第二次作业的一次拓展,遇到的问题基本都是输入0是答案错误,我发现对于题目我理解有一些错误,通过仔细看题予以解决。加分题呢我的算法好几次都没有通过,后我通过查找资料进行了多个代码的对比最终才得出答案
(4)、每次作业花费的时间比例
第一次小作业是是正则表达式、类的单一职责以及简单的继承的运用,我大概花了2天写完了后面的两题,第一题阅读题目以及理解题意我就花了两个小时,整个过程大概花了3天的时间
第二次小作业是类的继承性以及多态性运用,难度感觉难度上没有那么大了,我花了两天的时间基本完成了。
第三次小作业是多态性加Comparator接口以及Collections、ArrayList的结合运用,这是基于第二次小作业的拓展我大概花了一天半的时间写完,加分题开始看着很简单但我发现就是通过不了测试,这个题目花差不多花了半天时间。
(5)、对编程过程的逻辑严谨性的认识及教训
从这几次作业中我发现自己逻辑不够严谨,这三次的小作业基本都有输入0的一个判断,我的输出答案基本都对不上,通过调试才发现问题;另外喜欢简单的过程代码,这在第二次小作业中就体现出来了,我的简单过程代码直接代替了Comparator接口的运用,所以面向对象的思维还需要训练;这次的作业也犯了一个粗心的问题导致了提交的时候有一个测试点就是通过不了,原来是误写了一个字母,最后对于正则表达式运用上我觉得自己还很欠缺,这是我下一步的进攻方向。
2.OO设计心得
(1).对面向对象三大技术特性之间关系的理解
封装性:通过属性和方法对类进行了封装,让外界直接使用即可,保证了高内聚。
继承性:通过类的继承转而去实现多态性,形成可扩展性
多态性:这是Java的核心,要面向对象编程而不要面向过程编程。
(2).面向对象设计的基本原则理解(单一职责原则及“开-闭”原则)
单一职责原则:每个类只描述一个事情,每一个类都是一个主体,不归“我”的“我”不管从而实现高内聚。
开-闭”原则:对于扩展代码的开放的对于修改代码是关闭的。这就避免了我们对于一个需要转而进行修改代码的错误发生,直接通过扩展代码就可以解决。
(3).oo编程思维的理解
我个人认为oo思维编程就是通过我们去创造一个个类定义一个个对象,它的思想是每个东西都是一个主体,让每个对象具有主人翁的意识同时每个类之间具有一些联系、合作,通过这些完成指定的任务。
(3).类设计心得
通过这个阶段的Java学习,对于类的设计形成了一些基本的理解。我觉得一个类首先必须符合单一职责原则,然后符合开-闭”原则,这样就可以让类本身同时只简单描述一个事情,对修改关闭避免了因需求改变而修改代码引起的错误发生。
3.测试的理解与实践
(1).测试对于编码质量的重要性
一个东西的好坏有的时候我们是根本看不出来的,这个时候就需要通过一定的手段才能够检测到这个东西的好坏与否,测试对于代码而言就是这样,最基本就是可以检测代码的正确性,还可以让我们的代码质量变得更高,可以让我们按照相对应的要求完成任务,显然测试对于代码质量如同时间对于人类一样具有十分重要的意义。
(2).查阅资料,假设使用Junit进行程序的测试是否可行
我通过自己查阅了资料,简单通过Junit进行了函数的测试发现这个是可行的。 

(测试结果)
4.课程收获
这一个月的学习就感觉Java这门语言和C语言的不一样,但依旧没有十分重视,就在这种思想的支配下,也就让我吃了很大的亏,集中体现在我对于这门课程的理解度就少了,作业效率低了。随后老师给我们提供了查重,多次提到要提前写作业,抓紧写作业等,我才意识到到了Java语言的重要性,经过这一段时间对Java这门语言的学习,我明白了,对于我们编写程序的人来说,要具有终身学习的能力,不断更新自己的能力库,要学会利用百度查询资料,要知道如何自学,提高自己的竞争力。
5.对课程的建议
(1).第三阶段作业难度、题量的建议
对于第三阶段的作业难度上我希望加大,题量的话我觉得视具体情况而定,但还是要往多的方向发展,只有我们的训练到位了才能真正学到东西。
(2).课程内容讲解方面的建议
之前没有体会到这门课程的重要性,对于Java语言的学习也存在着轻视,现在我觉得老师的课程模式还是比较好的,学起来不是很累可以吸收新知识,写起作业来比较累而且通过自己查阅资料能提升知识转化力,能激发我的内在潜能,能更好理解Java这门语言,为以后打下基础。
浙公网安备 33010602011771号