OO课程总结
0、前言:
转眼间面向对象课程即将结束,本次博客主要内容为整门课程学习的总结,将重点介绍课程收获及课程的建议或意见、对面向对象这门课的理解和总结java课程pta作业情况。
1、作业过程总结
①总结三个阶段的pta作业:
第一阶段作业:主要是实现从C语言思想到Java面向对象思想的转变、了解Java的语法使用和了解面向对象的思想原理。
第二阶段作业:主要是对面向对象的三大特性的了解(即封装性、继承性、多态性) 、对面向对象的原则的理解(“开闭”原则和“单一变量原则”等)、对Java正则表达式的使用(即水文数据校验及处理和一元多项式求导)和类的设计原则。
第三次作业:主要是学习类的设计(即雨刷程序的扩展设计)和学习Java数据结构相关的知识(统计Java程序中关键字的出现次数和表达式求值)。学习数据结构的知识,了解List、Set、Map的使用,学会使用stack(栈)使用对表达式求值。
总结:这三阶段的作业是帮助我们对面向对象思想的了解、了解面向对象设计原则、学会对程序中类的设计、对Java数据结构的学习和学会正则表达式的使用。
②通过作业逐步理解面向对象的封装性、继承性与多态性三大技术特性
每阶段的作业都都是难度越来越大。
在第一阶段作业中的(日期类的三次作业)了解了关联、聚合、依赖。了解了类与类之间的关系、了解类的设计原则、知道了封装性。
在第二阶段作业中从(Shape图形的三次作业)学会了封装和继承和多态,知道了抽象类和接口的使用,了解Java面向对象原则的“单一变量”原则和“开闭”原则。
在第三阶段作业中的雨刷程序功能扩展设计学会了类的设计和程序扩展性的重要性,加深了对面向对象思想的理解。
③第三阶段作业过程中遇到的问题及解决方法
问题1:不知道怎么用(List Set Map)等匹配关键字 解决方法:百度找资料和多次尝试代码运行。
问题2:在第二次作业中不知道作业的测试点中的第二中注释的正则表达式怎么表示会使程序速率优化 解决方法:多次尝试还是没有解决。
问题3:对于第三次作业没有头绪和不懂(stack)使用 解决方法: 百度找资料、看ppt了解表达式的中缀转后缀的思路、在看相关视频学习后缀表达式的运用。
④第三阶段作业花费的时间比例
|
作业\时间 |
时间 |
占比 |
|
第一次作业 |
6h |
2 |
|
第二次作业 |
15h |
5 |
|
第三次作业 |
24h |
8 |
⑤对编程过程的严谨性的认识及教训
做题前多看需求分析了解一些特殊情况下输入输出、注意格式问题、写程序要严谨。对于(统计Java程序中关键词的出现次数)作业中就是写的程序不严谨和程序优化的不足而导致程序不完善。教训:写程序一定要严谨,思路要清新。
2、OO设计心得
①对面向对象三大技术特性之间关系的理解
三大技术分别是:封装性、继承性、多态性。封装简单来说就是把类中的属性和方法等用private,public,protect等保护起来,提高了安全性。而继承这是多个子类继承一个父类的属性和方法。多态则在继承的基础上加了个扩展性和提高了可维护性。
②面向对象设计的基本原则理解
单一变量原则:一个接口一个类一个方法只负责一件事情。
“开闭”原则:主要通过扩展程序实现变化,而不修改原来的代码,对程序扩展开放,对修改关闭。
里氏代换原则:子类有的方法,父类一样有。
依赖倒转原则:依赖于抽象的。
接口隔离原则:一个接口实现一个功能。
复用原则:组合优于继承,多用组合。
迪米特法则:没有关系的类不要有联系。
③OO编程思维的理解
通过一个学期的Java学习,我对面向对象思想的理解是把问题简单化抽象化用(一个个抽象类和接口)来在通过Java的封装性增加程序的安全性,通过继承和多态实现维护性、可扩展性、复用性。
④类设计心得
一个类只负责一件事,类与类之间可以继承、组合和进行多态,实现面向对象思想原则,降低耦合性,提高复用性,增加安全性和可扩展性。
3、课程收获
通过一个学期的学习,我对课程的收获:
(1)了解了面向对象的思想。Java程序与C语言程序不同,它做事不同于C语言程序一样按部就班一步步走,它是把事情给分化给一个个类类实现,之后在来调用这些类来实现程序,这样可以提高程序的大大可扩展性如(雨刷扩展程序),不同于C语言程序要改动许多,Java这个只需要加几个类即可。
(2)通过pta作业的关联、组合、聚合、依赖和类的设计等学会了Java面向对象三大特性封装性、继承性、多态性的使用,这可以提高程序的安全性、维护性、复用性。
(3)学会了Java正则表达式的使用,可以用来判断用户输入的信息是否正确,并提醒用户输入正确的信息。
(4)主要学会了面向对象二个原则即(单一变量原则和开闭原则)这可以提高类与类之间的关系和提高程序的可扩展性。
(5)学会了Java数据结构相关的知识(List Set Map)和stack(栈)的使用。
(6)学会了简单的JavaFX的界面设计(用界面做个简单计算器程序界面)。
4、对课程的建议
在这个学期的学习中,我认为本课程的通过pta作业而慢慢学会面向对象思想的教学模式还是可以,但我希望老师可以讲解一些pta作业源码的思路和思想逻辑。此外还希望老师可以多讲些代码的例子和这个代码的逻辑思维,我认为我自己的面向对象思维能力还需要提升。