标签:一个 代码 作业 学期 问题 面向对象 课程 程序设计
前言
这篇博客是对这个学期学习面向对象程序设计一个概括性总结,前面一部分主要包括在PTA作业的系统总结,后半部分则是重点阐述了对整门课程学习的总结,在其中的收获及对课程的建议或意见。
①总结全部作业之间的知识迭代关系;
②如何通过作业逐步理解面向对象的封装性、继承性与多态性三大技术特性;
在对整个学期的总结中,使我相对于上两次总结对面向对象的三大技术特性有了更新的理解。其实这三大技术特性是为实现软件具有安全稳定、保密性强、功能丰富、场景丰富、开发成本低、维护简便等优点的技术基础。合理有技巧性的运用这三大技术,可以为一个软件带来更多的优点。封装性将描述事物的数据和操作封装在一起,提高数据的安全性。继承性减少了类的亢余代码,让类与类之间产生继承关系,为实现多态提供基础。多态的实现对于后期的维护具有重要意义,当用户需求发生变化时,多态可以非常方便的为用户添加新的功能。
③作业过程中遇到的问题及解决方法
注:这里主要讲述最后三次作业的作业过程中遇到的问题及解决方法(前面作业已经阐述,这里不在讲述)。
问题1:在第九次作业对雨刷程序的重构过程中类的设计最重要的实现开闭原则。
问题解决:仔细分析其中的变量,我们将来要增加的是雨刷系统。在这里的子类只能是雨刷系统。雨刷系统的不同其实是各个状态的速度挡位不同,只要将这些加到类中即可。
问题2:在第十次作业中不需要将两种注释中的关键字统计进去。
问题解决:第一种不隔行的注释好办,只需要将“//”后面的字符去掉即可。而第二种则是先检查一段字符串中是否含有多行注释符号再将其中的内容替换为空字符。
问题3:在第十一次作业中表达式求值的算法问题。
问题解决:在表达式求值计算中要考虑计算优先级的问题,经过查找资料知道。我们常见的中缀表达式是最常用的算术表达式,运算符在运算数中间,运算需要考虑运算符优先级。后缀表达式是计算机容易运算的表达式,运算符在运算数后面,从左到右进行运算,无需考虑优先级,运算呈线性结构。
④每次作业花费的时间比例
⑤对编程过程的严谨性的认识及教训
在写第十一次作业时,因为将i写成了j导致结果错误,单步调试了差不多两个小时才找出这个错误。其实这种时间是被无辜浪费的。在进行调试之前只需要认真检查两遍代码就能很快找出问题。
在写代码的过程有错误是难免的,但是对自己常见的错误要有一个全面的了解,并且在下一次写代码1时积极规避这些错误。并形成自己的一套高效快捷的检查错误调试代码的方法。
2.OO设计心得
①对面向对象三大技术特性之间关系的理解
三大技术之间相辅相成奠定了面对对象设计的基础。从封装到继承再到多态,一步一步向前递进,后面技术的实现需要前面技术的铺垫。再加上设计原则和一些设计模式,适得开发的程序非常的灵活多变,功能丰富,便于维护。
②面向对象设计的基本原则理解(单一职责原则及“开-闭”原则)
单一职责原则是指一个对象有且仅有一种功能,同时也仅有一种功能需求的变更能够引发该对象实现的修改。该原则提出对象不应该承担太多职责,如果一个对象承担了太多的职责,会造成当不需要那么多功能时会让有些代码多余,并且一个功能发生变化时会引起其他功能的变化。
开闭原则是通过“抽象约束、封装变化”来实现的,在以前我只想到了开闭原则可以提高代码的可复用性和提高软件的可维护性这两个优点,其实还有一个当一个软件实现了开闭原则,软件测试时只需要对扩展的代码进行测试就可以了。
③OO编程思维的理解
OO编程思维其实就是五个字“万物皆对象”,在进行程序编写时将每一个事物或者每一个功能封装成一个对象这只是一个半成品的程序。在其中对象与对象之间的关系运用变的尤为重要。这些关系往小的方面讲就是关联、依赖、组合、继承、聚合;往的方面讲那是几种设计原则再加上设计模式。只有依靠这些才能设计出一个灵活多变,功能丰富,便于维护的程序。
④类设计心得
类的设计在面向对象的程序设计中是尤为难以把握的,在这段时间里学习了许多设计模式,说实话自己其实还不是很懂那些设计模式。这是java中的精华部分,这就是和面向过程程序设计的不同。一个好的类的设计离不开这几大原则和这些设计模式,一个好的类的设计也能为程序员提供更加长远的便捷。
3.测试的理解与实践
代码质量离不开测试,代码测试是对代码的一个深入了解,代码质量保证了,功能才能稳定,稳定可靠的功能就是一个好程序。保证代码质量就是程序员练内功,内功扎实,才能在上面构建更多的可能性。
4.课程收获
这个学期学习面向对象程序设计的过程比较痛苦,但是收获很多。同时越是学习到后面发现面向对象的程序设计的水很深,自己只是学了一些皮毛,以后还是要加强学习。
这个学期的作业主要有九次PTA作业三次博客作业,每一次写PTA作业都是痛苦的过程但是在琢磨了许久在测试得到了一百分时心情是舒畅的、开心的。
通过这个学期的学习自己的综合编程能力提高了,其中包括编写代码过程中严谨性,以及解决编程问题的能力。在编写代码的严谨性方面,由于在大多数作业的代码量都较大,自己在编写程序的过程中不得不考虑每一部分代码的正确率。并且在编写代码时养成了一个习惯,每写一段代码时都会去测试其正确性,这样写出的代码正确率会高许多。在代码严谨性的问题上不仅仅局限于逻辑正确更在于对所解决问题的各个方面的考虑,也就是常说的每个测试点,当然测试点也不是全面的。
通过一个学期的训练,自己解决问题的能力变强了。在遇到了一个问题不再是一筹莫展的情况,而是养成了仔细分析问题寻找切入点,将一个复杂的问题分解成一个又一个的小问题,或者一步一步的去用面向对象的思维解决问题。
这个学期的学习还使我进入了软件学习的新天地。以前对软件这个专业了解甚少,通过这个学期的学习,发现了以前面向过程程序设计的局限性,而面向对象的程序设计能解决大部分的问题是与生产生活息息相关的。更是改变了我对于代码质量的理解,代码质量不仅仅是体现在代码长度,运行时间上,更是体现在软件的设计上。一个好的设计不仅仅能够让程序功能丰富,安全性高而且更利于后期的维护,甚至可以实现再开发。
总而言之,一个学期的时间很短所学的东西有限。这个学期学习java很难受,但是收获很多,感悟很多。在此自勉:愿自己以后在软件开发的道路上越走越远。
5.对课程的建议
在以下讲述我对于这个学期的优点以及不足(这只是我个人看法):
优点:
- 题目难度较大,可以提高学生的编程能力。
- 在一段时间及时总结,并且写博客发表。这样的安排是具有长远的眼光的做法,可以让学生梳理知识,并且学会交流分析。
- 课程多以实例讲解,可以让学生更易掌握知识。
- 积极培养学生的自学能力。
不足:
- 题目的难度大了,但是数量不够。每一次pta都会用到一些新知识,但是由于题目难度大,大部分时间在思考如何解决这个问题,实际上运用到新知识的次数不多,造成对新知识的巩固效果不太好。建议题目量要加一些可以在后一次作业加一两个上次作业所运用的知识点,这样可以巩固知识。
- 在每次作业完成之后,应该讲解一下大家在其中容易碰到的问题,以及又快又好的解决途径。我们通过大量的时间去摸索去解决问题会形成自己的一套方法,这个方法对不对应该有一个对照而这个对照应该是以老师讲解的为一个参照从而更加容易发现自身的问题。
标签:一个,代码,作业,学期,问题,面向对象,课程,程序设计 来源: https://www.cnblogs.com/187-3177-187/p/13080608.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。