从开始学习java到现在已经快一个月了,渐渐地也开始上手了。在这一个月的学习当中,老师一共布置了三次题目量比较大的作业。第一次作业我认为主要还是让我们适应java的基本语法,并没有使用面向对象的思想来编程,我的代码基本上都是在主函数就可以实现。主要都是一些java的基本语句的训练,比如条件判断,循环语句等。
包括Java的输入输出,还有一些其他的语法。第一次的作业主要是让我们有一个过渡,过渡到后面面向对象的思维方式来编程。从第二次作业开始,就可以用面向对象的思维来编程了,但是说实话刚开始对于我来说还比较难一些,有点力不从心,还是训练太少了对类的属性,方法使用的不够熟练。虽然题目只有四道题,但是基本上每一道题的代码量都比以往的作业多得多,甚至比以前的实验代码还多。老师也在题目上做了要求,明确指出需要用到哪些方法。
按老师的要求,理解类的属性与方法的关系后,慢慢的也变得得心应手起来,但是还是有很多的细节把握的不到位,也对很多的修饰词没搞懂,不如说public到底啥意思这些知识点没有一个概念。但是很快,在第三次作业发布的时候,老师已近讲解了其中的意思。Public、private、protected、friendly的基本概念已近掌握了。第三次作业已经可以说是完全面向对象的编程思维了。这时候用面向过程的方式有点不适用了。一来老师题目有所要求,而来真的使用面向过程的话写起来很麻烦,万一有错误改起来将会使人头皮发麻。这次作业的知识点主要是java的访问控制权限,以及类与类之间的关系、uml图的理解。
从这三次作业的过程中,慢慢的过度到了面向对象的编程方式了,一是题目要求,二来慢慢发现的面向对象的优点,在处理一些问题上确实比较方便。
在做作业的过程中,其实我认为主要的问题还是自己细节处理不到位,比如第一次作业的判断三角形的形状那题,自己总是没把握好判断三角形形状的过程,包括题目的要求总是无法达到,自己埋头苦干后发现还是不行,求助同学,最后还是没理解。出去玩了一下晚上会来柳暗花明。看来有时候适当放松一下也是一种解决问题的方法。当然也感谢同学之前的指点。在第二次作业过程中,总是有个测试点过不去,题目也没有明确的提示问题在哪。当然确实也不是题目的问题,经过自己不断输入数据测试后,发现是自己在月份上的判断出现了问题,由于 三、四题使用的都是同一个算法,
也就是这一段,由于自己当时也没仔细记下错误,大致就是这里错了几个数字,导致我的日期能输出0号。比如2020-3-0。经过自己初步判断发现问题应该出在这里,仔细核对代码。问题就迎刃而解了。第三次作业的话相比前面两次的作业又变得更加困难一些,主要类多了。但是最大的问题我还是觉得在细节的处理上。比如在最大值测试的那两个测试点,虽然理解到了可能回溢出的现象,但是怎么也没想出解决的办法。又是询问身边的大佬,给我一些提示后,自己想出了分两次计算的方法来解决问题。第三次的题目按题目给的主函书以及图中的关系,以及uml的表示写出代码来问题还是不大的。
作业时间花费的比例我基本上都是在两天天左右完成的。出了第一次用来三四天,但是听老师说成绩与完成的快慢有关后面的作业我就快马加鞭完成了。问题比较大的时候有时候还是会拖得比较久的。
在作业上我觉得我最大得问题就是不够严谨,第一次作业由于自己输出没有加上最后一个点.调了半天才发现与样例不对,真是非常得失败,还有后面作业一些简单问题上也调得比较久。我觉得要多在自己得代码上做注释,很多时候自己都看不懂,比如现在看以前的代码,就需要一点时间来理解代码了。还有在遇到的问题上要及时记下来,这样才能又更深的印象,时刻提醒自己不能再犯下类似的错误。
面向过程与面向对象的比较:对于我的理解我觉得面向对象能更快、更方便得解决问题,不需要很大得改变就可以把问题简单化,每一个类都有各自得属性与方法,与类不可分割,这就使得很方便。而面向过程必须要靠一个一个函数解决问题,这样虽然处理问题得速度上快了许多,但是万一出现bug那修改起来是非常麻烦的,甚至需要大面积的修改,这就很麻烦了。二者目前我认为都有各自的实用性。在底层的代码中,面向过程有更快的速度,那可以用。但是对一些大项目上面向对象还是使用的多一些。二者都有目前自己各自的优点,相辅相成。
面向对象设计的基本原则理解:以我目前的理解来说,由于自己目前学习的还不都深入,我觉得就是万事万物都是对象,但是对象上面又有类,为了方便,需要我们把很多具有相同属性的东西放在一起这样就更加方便。
OO编程思维的理解:oo编程思维有三大要素封装,继承,多态。由于目前还没学到这些,自己也没预习这么多,只了解一些封装以及继承。但是只是知道一些皮毛,没有熟练掌握,说实话,对OO的理解还是没有非常深入。
测试对编码的质量要求还是比较高的,有些算法比较麻烦,虽然能得出最后得结果,但是时间比较长。在第三次作业我得计算前n天和下n天的代码中,在pta上提交提示超过了运算时间。这就是代码麻烦的一种体现。这也算是一种测试了吧,告诉作者代码过于冗杂,不够简便。有了测试才能知道自己的问题。
如果让我设计测试用例,我会在主要节点上进行测试,比如在作业中的日期题目,测试用例就设置在平年,闰年的儿园最后一天,根据题目把测试点放在边界值。普通的数据也要放,但是不要放那么多就行了。
最后,这四周以来,算是在Java的oo上有了一个入门,多了一种编程的思维,不再局限于面向过程学习是循序渐进的,一周以来学习的知识还是比较多的。我觉得自己最大的问题就是处理细节不够好,解决问题的代码不够优化。自己在算法上还是要多练习。上课也没做笔记,课后复习起来比较困难。在家学习的困难还是要多克服,多努力学好java。
本次java第一阶段总结,仅供参考学习也为自己做个笔记。
java第一阶段作业总结
最新推荐文章于 2024-08-18 21:36:31 发布