00第一次作业周期总结

0.前言

Java第一阶段pta作业总结:从Java环境配备到基本语法再到面向对象和类

1.作业过程总结

 

第一次作业总结

就第一次作业而言,和C语言第一次作业差不多的难度,相对而言比较简单。第一是对数据的输入处理以及输出处理,与C语言相比,Java需要scanner进行对数据的输入,而且当声明一个变量必须得对它进行赋值,不然程序报错;第二则是if---else语句的运用,这和C语言语法差不多;第三是得注意输出的格式,与C语言不同,Java对程序的要求较高,不得出一点原则的错误。可能许多人在前面的作业会有一些语法的错误,这时候得问老师或者同学,并且自己主动查资料学习,直到自己完全掌握为止。总的来说,第一次作业的完成正是老师给我们的入门的锻炼,得好好对待完成,并且在作业方面需要十分细心,因为第一次作业数据处理较多。

第二次作业总结

就第二次作业而言,主要是Java方法的编码。C语言中称它为函数的运用,而Java语言中叫它方法的编写。第二次作业需要对题目的要求更加完善,需要考虑多方面的情况,就日期而言,平年和闰年天数是不一样的,计算某个日期是星期几,就需要对它分析判断,用多种方法一起完成题目的要求,计算出这些,由于题目难度是逐题递增,前面计算出来了,后面的基本就能完成,极个别得考虑极端情况;而且由于pta平台对代码长度也有要求,所以一些方法写出的代码较长,pta也会不让通过;当考虑到极端情况,循环运用个别错误可能导致代码运行超时。综上得作业的难度是逐渐递增的,除了上课听老师讲课,课外自己需要去上网多查查资料,才能对知识点掌握更加熟练。

第三次作业总结

就第三次作业而言,我们接触到了面对对象思想这个概念,考虑一个问题逐渐从过程到对象的本身,而这便是Java的基本入门了。第三次作业仍然是日期为问题,但是这更加复杂了。对对象进行设计,设计类,设计多个方法,每个方法都是需要实现的功能,到此,可以明白,其实这也方便了代码的修正,当某个地方出错时,我们可以迅速找到实现该问题的方法,随后对其修改。然后对数据处理需要我们学习好代码的调试与数据测试,这样改正较为方便。

三次作业总结:三次作业的难度是逐渐递增的,从Java入门到过程再到对象的设计,一步一步引导我们走上Java的学习。在课堂上,老师同样教了一些另外的知识,比如uml图像,这个图像正是对象的结构图象,从图可以清楚了解其关联及结构,在Java中较为重要,而这也是老师帮助我们过渡到对象的一个地方,产生好自己对其概念的理解。这个过程需要自己去理解,老师只起到引导作用,而这理解的过程在题目中能够加快,所以做题需要投入认真,才能逐渐走入Java的学习。由于难度增加,在时间上花费上也就越来越大,所以编码过程得沉下心来。

2.OO设计心得

①面向过程与面向对象的比较:我认为面对过程是将一个问题的每个步骤想出来,有始有终,就像玩游戏一样,必须有游戏开始游戏的进程以及游戏的结束,这样才能算完整的,这些就设计方法去实现;但是面对对象则是将问题分成许多个对象,在每个对象中解决问题的一部分,而这一部分就是问题中的一部分,对象的各个行为。

②五个原则 :

       开放封闭原则:可以增加新的类来完善,但是不能对原有的类进行修改,也就是可以增加新的功能,不能对原来的功能进行修改。

       单一责任原则:一个类只能包含一种功能,不能随意加入其他功能进入,这样就是破坏该规则。

       里氏替换原则:子类可以替代替换原父类所需要修改的地方,这样可以不需要修改父类就可以修改原结构,改变代码,也就可以增加新功能。

       接口分离原则:设立多个接口,不要只仅仅设立一两个,用多接口实现多功能,这样也方便我们的使用,也可以方便其他人看,满足我们的需要。

       依赖反转原则:在Java编程中进行分工化,各个类不需要依赖于各类中实现的每个细节,应该对全部程序进行考虑,而不仅仅是只注意某个细节,也需要运用并且依赖多个接口。

③编程思维的理解:编程思维十分重要,每个程序员都得有自己的编程思维,这个思维正是我们的逻辑思维能力,对一个问题有自己的思考与看法,并且对其能够深入了解,更复杂就是透过现象看本质了。拿到一个问题,首先别急着用手敲键盘,应该先思考这个问题的解决方法,如何解决是十分重要的,将其本质看清楚,设计好自己的思路,怕记不住就边拿笔边写,大概框架完成了就基本可以下手了。一般程序的问题不止一种解决方法,也就可能会导致代码长短的问题,这也是考验我们的逻辑思维能力,越想的透彻就越简单。Java的学习必须要有这种意识,因为里面的对象可能较多,实现问题可能较为困难,方法不同,代码长短也就不同了。

3.测试的理解与实现

①代码测试十分重要,可能现在对于我们正在学习的学生而言,意义停留在作业的解决方面上,它可帮助你对你的代码放心,对一个稍复杂的问题写一个解决方案,某个测试点没过可以进行手动测试,你只需要这么做就可以了。并且还会让我们思考极端值,产生更深的理解。如果你的代码难以测试,那么可能是你代码没有写好。当我们不如社会开始工作时,代码测试对于一个软件的完成十分重要,因为当我们提交代码给客户时,就可能有犯错的可能,错误多了,客户可能就少了,自己的问题也就大了。而且当我们没有通过测试的代码时,对自己的打击也很大的,所以代码测试与实现十分重要,不仅仅是此时此刻的作业,还有未来可能步入的工作。多进行代码测试,会提高代码的质量,优化代码。

②设计测试用例:我认为得考虑问题的极端值,例如拿三角形问题来说它有三条边,输入的三个数据判断三角形的结构,当两条边相等时,它为等腰三角形,但是当其中两条边平方和等于第三条边平方和的时候,它又为等腰直角三角形,当不满足三角形基本定理时,它又不为三角形,以及正三角形直角三角形钝角三角形等等。这些地方都需要我们去考虑,也就能用这些极端值来测试代码的正确与错误,尤其是边界值的测试,我认为这是代码测试最基本的地方。又拿日期问题来说,代码便可在平年闰年中的特殊时间设置,要求其星期几或者前后的时间,这个测试点就按闰年的某个时间测试,还得考虑每月的最后一天,这样才可能全面。

4.课程收获

上了几周的课了,收获确实多了许多。

①相对于C语言来说Java感觉一些特殊原则更加抽象,并且原则较多,代码要求更高一些,正如继承、封装与多态等,或如uml图像中,这些都需要产生自己的理解才可能将其学的透彻一些,知识点也不会过于模糊,对Java的学习也就更加轻松一些。

②Java的代码测试比较重要,需要我们去认真检查代码的完全正确性,当不完全正确时,我们要将临界值输入检测,能够帮我们快速发现问题。

③面对过程与面对对象的转变以及各自的优缺点。

④解决问题时必须细心思考过程,最好能对每个问题的本质了解,然后进行代码的编写。

5.课程建议

①希望老师在将、讲概念的时候能够将抽象的概念能够有些多的讲解或者实例;

②在重点难点方面上能够多多停留,给一些思考的时间,能让我们有一些头绪。

 

posted @ 2020-04-05 12:46  土豆丝丶Areil  阅读(130)  评论(0)    收藏  举报