面向对象编程学习第三次博客--对课程学习的总结与收获
0.前言
在OO第三阶段的学习中,我们主要学习了面向对象编程的封装,继承,多态性的运用,学习了List、Set以及Map的特点,接口方法等,同时在课程最后还学习了javaFX,图形界面的相关知识。本阶段学习是面向对象编程课程的最后一个阶段,此次博客主要对课程的整个学习做一个总结。
1. 作业过程总结
①首先总结一下最后一个阶段的三次作业,内容上区别较大,检验了Java中各种知识的掌握程度。雨刷功能的设计全面的考差了封装,继承,多态的概念,运用开闭原则等来解决问题。统计关键词考察了HashMap的使用方法,而最后一个计算表达式则是对于栈,堆以及算法思维的考研。
②在雨刷功能拓展作业中,虽然题目内容较多,但基本思想还是关于类的封装、继承、多态的考察,题目思考量不大,但在编写过程中要注意的小问题较多,比如对输入的处理,ArrayList的使用等,虽然过程较为艰难,但还是成功写出此次作业。
③在统计关键词作业中,使用到了HashMap的相关知识,但我在此方面较为薄弱,经过大量时间编写依旧出现许多问题,没有取得满分。
④在计算表达式作业中,一开始毫无思路,在老师的指引下接触到了使用栈和堆来解决问题的算法,但因为不熟练,最终未能成功解题。
⑤这三次作业难度都很大,尤其是最后两个作业没有成功做出来,因此我还有许多要学习。
2. OO课程心得
①面向对象编程的思维
学习这门课程的基础和入门是对对象的理解,将自己的思维从C语言的面向过程编程转变为面向对象编程,虽然一开始较难接受,但在经过课程学习之后,能深刻体会到对象封装、继承、多态等各种特性带来的好处,能做到许多面向过程编程做不到或者难以实现的方法。
②面向对象的五个基本原则
单一职责原则:一个对象有且仅有一种功能,同时也仅有一种功能需求的变更能够引发该对象实现的修改。
开闭原则:对象或实体应该对扩展开放,对修改封闭。这就意味着一个类应该无需修改类本身但却容易扩展。
里氏替换原则:一个子类或派生类应该可以替换它们基类或父类。
接口隔离原则:不应强迫客户端实现一个它用不上的接口,或是说客户端不应该被迫依赖它们不使用的方法。
依赖倒置原则:实体必须依靠抽象而不是具体实现。它表示高层次的模块不应该依赖于低层次的模块,它们都应该依赖于抽象。
这五个基本原则是面向对象编程的基本,掌握这些原则,才能称之为学会了面向对象编程,虽然我现在运用还不熟练,但有这种思想,在编程中主动的有按照原则编程的基本意识,才是最重要的。
③养成良好的编程习惯
编程不仅仅要解决目前的问题,更要考虑到以后可能出现的问题,因此代码的可读性,可维护性,可拓展性非常重要,因此要养成良好的编程习惯,比如类和变量的命名要有意义,缩进要合理,冗余代码的优化等等,这些是作为程序员的基本素质。
3.测试的理解与实践
无论是面向对象还是面向过程编程,测试都是编程中重要的一部分,不夸张的说,测试的时间在整个程序编写中占比将近一半,并且贯穿整个编程过程,每编写一个类或方法,都应Debug一次,将错误及时解决,而假如在编写完整个程序再调试,那Debug过程将是一种灾难,一边编写一边测试看似耗费时间,但与对整个程序代码重新Debug相比,反而是节省了大量时间。
4. 课程收获
通过面向对象编程课程,我收获到许多,不仅仅是Eclipse和Java的使用方法,更学会了面向对象编程的这种思维,以及处理问题的逻辑思维。通过一次次的PTA作业,一次次的实验作业,通过每节课的听讲,每一次的百度,提高了我的编程能力,比如PTA的各种输入验证促使我每次编写都首先考虑输入输出的合法性,再比如实验中对BUG的提问令我更深刻的记住了程序逻辑严谨性的重要,以及令我学会了Debug的方法。
这个课程刷新了我对编程的理解,我明白了编程不只是一个人的事,不只是死板的解决一个问题。程序的可读性,可复用性,效率,可拓展性,都是要考虑在内,解决问题的算法只是其中的一小部分。面向对象编程要有大局观,不仅要编写好正在运行代码,还要着眼于未来可能出现的,需要解决的问题。
总而言之,虽然学到许多,但我仍有不足,仍需继续学习。
5. 对课程的建议
①因为PTA作业难度普遍偏高,所以我个人建议先布置实验作业,之后再布置相关的PTA作业,这样能在实验作业接触相关知识,之后再PTA的实际运用中使用这些知识,这样效果可能会更好。
②建议在作业之后,抽出一定时间将PTA的满分作业进行讲解,可能更有助于学习和理解。

浙公网安备 33010602011771号