OO课程总结

前 言:

    本次博客主要针对本学期的JAVA课程以及第三阶段的作业做一个总结。本阶段的作业也是共有三次,但是总共只有三道题目,也就是一次作业一道题目,每道题目都是可以实现一种对应的功能的。伴随着作业的进度,难度也是不断的增加。通过本学期的学习我也明白了,要想实现一个功能并不简单,因为需要考虑到很多可能出现的问题,需要不断消除bug。

一、作业过程总结

    (1)、总结作业的知识迭代关系:

        1、第三阶段第一次作业是实现雨刷器的功能的,本次作业难度较小,因为这道题不仅有相应的指导书,老师更是之前讲过类似的题目,只要再深化一些就可以实现了。这道题目着重于抽象类的使用以及“单一职责”和“开-闭”原则的应用和意义。

        2、第三阶段第二次作业是统计java程序中关键词的出现次数。从这次作业开始难度加大,老师只是稍加点拨,并且没有指导书,没有类提示,一切都要靠自己,甚至这53个关键字也要自己去搜查。这次作业让我措不及防,难度的加大,让我开始手足无措,原地发呆。这次作业主要是培养自己根据要求构造类图,构造自己的解决思想的。除此之外,还利用到了Map,HashMap的使用以及一些格式的处理,例如去除表达式中间的空格,这在之后的作业中也是有所利用。

        3、第三阶段第三次作业是表达式求值,相当于一个简易计算器,利用到了之前的去空格以及Map数组,除此之外,还得使用栈来进行处理运算符和运算数据需要考虑的问题和情况也有很多。

        4、其实每一阶段的每一次作业之间都会有知识的联系和更新,难度总会逐渐上升。而每一个阶段之间的作业也是一样的,难度在不断增加,循环渐进,直到如今连类提示都没有了,逐步培养学生利用面对对象思维来解决问题。

     (2)、作业过程中遇到的问题及解决方法:

        每一次作业总会遇到各种各样令人意想不到的问题,而对于这些问题我通常只有一个解决方法,那就是在网上疯狂搜相关知识点,有时候搜不到就会去问一下同学,很少问老师,不是说老师不会解答自己的问题,而是以前也不怎么会问老师,所以现在也不怎么敢问老师了。不过有问题还是要先自己去搜一搜,比如刚学JAVA不知道怎么输出,可以在网上搜查,不用一分钟就可以解决这个问题,假如实在搜不到就可以问老师了问同学了,而且这个时候你也更明确自己到底想知道什么了,可以更好的解决自己的问题。

     (3)、每次作业利用的时间比例:

        1、第三阶段的每次作业比例大概在2:3:4左右。

        2、每次作业的难度在增加,但是自己的对于JAVA的知识也在同步更新着,所以每阶段的用时比例其实是相差不多的。

     (4)、对编程过程的严谨性的认识和教训:

        通过本学期的学习,对于编程过程的严谨性也越来越深刻了,如果自己考虑问题不够周全,那么到最后编写完代码之后会出现很多bug,为了消除这些bug就会耗费越来越多的时间,可能会将自己的代码越改越乱,这其实同时也体现出了面向对象的“开-闭”原则的优点,就是符合原则的代码在修改的途中不会变的面目全非。因此,编程过程的严谨性的作用意义非凡。

 

二、OO设计心得

     (1)、对面向对象三大技术特性之间关系的理解:

        三大技术特性分别为继承性,多态性以及封装性。三大特性之间互有联系,互有交接之处。继承为子类继承父类,可以直接访问父类的方法,但是不可以访问父类的私有属性,不过可以间接访问。多态是同一个行为具有多个不同表现形式或形态的能力。而封装性则是将成员变量私有化,包装起来,访问私有变量必须使用get方法,改变变量的数值则需要使用set方法,这样可以使代码的维护性提高。

     (2)、面向对象设计的基本原则理解:

        面向对象的基本原则一共有六大原则,其中接触最多了解最多的也是“单一职责”以及“开-闭”原则。两种原则可以使代码的可读性以及维护性得到提高。也更能表现面向对象的思想,即将每一个功能集合起来然后可以实现一个大功能,实现需求。“开-闭”原则可以增加功能或者减少某种功能可以不用修改整体的代码,只需要删减或者添加代码即可。

     (3)、OO思维编程的理解:

        经过一个学期的学习,对于OO思维有了进一步的认识。面向对象注重的是对象,就好比盖浇饭,想要什么味道的饭只需要增加或更替之前的的菜即可。OO思维编程就是将功能模块化。

三、测试的理解和实践

     (1)、测试对于编程质量的重要性:

        测试可以发现代码中存在的许多问题,可以发现程序中的许多bug,可以更加有效的来实现需求。可以通过测试来提高代码的质量,才能避免出现一些问题。程序员编程过程中可能考虑得不够全面,所以需要测试来发现代码存在的问题,就好比最后的一次作业,表达式求值,有一些数据可以通过,可以正常得出答案,但是却不可以通过PTA的测试点,这就说明了我考虑问题不够全面,还是存在不足。所以测试对于提高代码质量减少bug的作用无可替代。

四、课程收获

     总结这一学期在OO方面的收获和教训

        1、从最初的的面向过程到面向对象,从无知到懵懂再到现在的初步了解,一步一步的走到了现在,越是学习越是了解了JAVA的路还很长,看不到边际,需要学习的东西还很多,没有尽头。学习JAVA的路程中学会了自学,因为写PTA有很多的东西是要自己去深入了解去掌握相关的知识的,例如StringBuilder,或者是正则表达式,都是要自己去学习的,老师是不可能像高中老师一点一点都给自己讲解得清清楚楚明明白白的,相信到了之后的生涯中自学也是避免不了的。

        2、JAVA有很多内容是可以在网上搜到的,许多的语法使用是可以不需要去背单词一样的背诵下来的,写多了就会了。所以要多写,不能长期不学不写,那样容易手生。

        3、要养成面向对象的思维,就是一看到问题就要在自己的脑海中构思UML类图,需要有初步的大纲,知道大概需要分成哪些类,这些类又要执行什么样的功能,这些思想的培养依旧是需要多写,毕竟实践出真理。

        4、最新的JAVAFX让我眼前一亮,我是真的没想可以利用JAVA还可以写出图形界面,可以画出图形,这比C语言要方便一些吧,我觉得有点类似于ege,引用相应的库函数进行画图形。

五、对课程建议

    题量和题目的难度都还可以,循环渐进,一步一步的加深难度,引导我们培养面向对象的思维。就是对于新内容的讲解依旧是越多越好。从初学到现在,用示例来讲解是真的不无聊,其实虽然在课上好像没收获太多的知识,但是就是上了课之后才有勇气去踏足新的领域,就好比JAVAFX,讲解之后才会去学习。我觉得可以指明一些方向,毕竟JAVA的范围很多。

 

posted @ 2020-06-06 14:55  溟濛  阅读(119)  评论(0)    收藏  举报