第一作业周期总结
0:前言
本次博客主要针对第一周期Java的三次pta作业做一个阶段总结。
1:作业过程总结
1.这三次pta作业中,第一次涉及较为简单的判断,循环等方法,再到第二期更为复杂的日期计算,计算根等,在这些问题的求解中需要运用更为复杂的算法,第三次作业主要强调设计类,突出面向对象思想,并加深对面向对象思想的理解。
2.在这三次作业中,前两次都不涉及类的涉及,只是让我们初步使用各种算法实现问题,第三次作业在需要用更为复杂的算法实现问题的基础上需要设计类来解决问题,类是Java特有的内容,主要就是提现面向对象思想,使得我们开始慢慢从面向过程转为面向对象。
3.在三次的作业中,主要问题有if判断的繁杂而没有理清各个部分直接的关系,类之间调用的关系总是不能很好实现,在计算日期时没有充分考虑不同年,不同月的日期差别,算法思路不清晰导致代码运行时间过长等。主要解决办法便是在if嵌套中努力精简,删除多余的大括号,同时认真分析每个对象的关系,理清判断的临界值。类之间的调用听过查阅资料,自己理解分析并通过自己打代码实验而解决。在关于日期问题的解决上,改变之前已天为单位的计数,而变为可用年为单位便用年,可用月为单位便用月,使得代码的运行时间加快了许多。
4.关于每次作业花费时间的比例,自然,每次作业都比之前难,所以花费的时间也越来越多,有的甚至几个小时都没解决一个类的构建。
5.关于编程,严谨性是最为需要的,有的往往一个小错误就可能导致整个算法都错误,而且代码也需要精简,不然在找bug时十分困难并耗费很多时间,在打代码前我们需要仔细构思代码的结构,期中各个类,各个属性的关系与判断,不能上手就直接写代码。
2:oo设计心得
1.关于面向过程与面向对象的比较。面向过程主要是看重解决问题的过程,而在解决问题基础上的每个对象只是机械地参与其中,并没有自己的特点,更像是机械地解决问题。而面向对象的思想中,参与解决问题的对象都有属于他们自己的属性,有private,public等私密与公开,这在面向过程中是不曾有过的。在新学习的继承中,类与类之间的也变得更加人性化,有父类与子类的关系,简化了代码的复杂程度,整体更像人性的思维去解决问题。
2.对于Java面向对象的基本原则,目前了解的有单一职责原则,即单一职责原则定义接口或类和职责的关系是一一对应的,就一个类而言,应该有且仅有一个引起它变化的原因。也就是说一个类应该只负责一件事情。好处便是降低代码的复杂度,代码的可读性提高。
3.关于oo编程思维,面向对象就是将事物都看成对象,将具有相同特征的实物看作类。通过对类与对象的继承,封装,多态的实现,完成模拟现实从而解决问题。
3:测试的理解与实践
1. 关于测试。每个代码在真正使用之前,都必定需要测试,因为再厉害的程序员也不能保证他的代码就一定没有bug,我们需要对代码的功能,性能等进行测试,充分了解代码的输出是否符合我们的预期。因为我们给别人的代码是产品,在这之前我们需要保证代码的质量,所以测试就显得尤为重要。
2.如果让我设计测试用例,我应该主要测试临界值,例如日期计算中,应该重点关注闰年平年的二月份,每一年的轮回关系,每个月交接的地方,最大值与最小值等测试。还应该设计一下错误用例,来关注程序在收到错误的输入时是否能给出合理的提示。
4.课程收获
通过最初几周的Java学习,我最主要就是学习了面向对象思想的知识,初步了解了Java在解决问题时与C语言的不同,这对于一个程序员来说,了解不同的思想是必要的,这使得我们的逻辑性增强,同时能已更发散的思维了解解决问题的方法。同时学习了很多关于Java类设计,类图的理解,继承关系,单一职责等知识。
5:对课程建议
Java课程主要便是介绍面向对象思想,在有了C语言基础的学习上,应该多注重培养学生面向对象思想的构建,同时应该着重讲解Java特有内容的讲解。
6.之后一阶段的学习计划
1.更深入地了解面向对象思想
2.理清楚各个类的调用关系,努力精简代码。
3.加强Java特有内容的学习,如继承,封装的知识,并学会如何运用。
浙公网安备 33010602011771号