面向对象程序设计课程总结
面向对象程序设计课程总结
前言
经过一学期的学习,面向对象程序设计课程即将结束。与上学期学习的C语言相比,这门课程更注重设计思维而不仅仅是语法实现。课程通过PTA作业、实验、Blog总结、线上学堂在线课程和线下课堂等多种形式,全面培养了我们的面向对象编程能力。
PTA作业虽然数量不及上学期多,但代码量和复杂度显著提高,特别是电梯系列题目对算法和设计能力提出了很高要求。实验部分采用渐进式设计,从基础类与对象到继承、多态再到抽象类和接口,逐步深化理解。Blog作业帮助我系统梳理各阶段知识点,形成完整知识体系。整体而言,课程工作量大、难度高,但对提升编程能力和设计思维效果显著。
面向对象技术总结
1. 面向对象设计原则
课程让我深入理解了面向对象七大原则:
- 开闭原则(OCP):通过抽象和多态实现系统扩展而不修改原有代码,这是面向对象设计的核心
- 单一职责原则(SRP):每个类只负责一个功能领域,降低耦合度
- 里氏替换原则(LSP):子类必须能够替换父类而不影响程序正确性
- 接口隔离原则(ISP):使用多个专门接口比使用单一总接口更好
- 依赖倒置原则(DIP):高层模块不应依赖低层模块,二者都应依赖抽象
- 迪米特法则(LoD):减少对象之间的耦合
- 合成复用原则(CRP):优先使用组合而非继承
这些原则在PTA作业和实验中得到了充分实践,特别是电梯题目和雨刷系统扩展题目,让我深刻体会到良好设计带来的可维护性和可扩展性优势。
2. 核心技术掌握情况
封装:熟练使用访问修饰符(private/public)和getter/setter方法保护数据,降低耦合。
继承:掌握extends关键字实现代码复用,理解继承层次设计的重要性。
多态:能够通过方法重写和接口实现不同对象对同一消息的响应差异。
抽象类与接口:
- 抽象类:理解抽象类定义共性行为,子类实现具体细节
- 接口:掌握接口定义规范,类实现多接口的能力
- 在实验和PTA作业中多次应用,如电梯控制系统、雨刷系统等
集合框架:
- 熟练使用List(ArrayList, LinkedList)
- 了解但不够熟练:Set(HashSet, TreeSet)和Map(HashMap, TreeMap)
- 需要在实际项目中加强Map和Set的应用
异常处理:
- 理解异常分类(Checked/Unchecked)
- 能够使用try-catch-finally处理异常
- 需要更多实践编写自定义异常类
JavaFX:
- 通过翻转课堂和航空物流大作业掌握了基础应用
- 理解MVC模式在GUI开发中的应用
- 需要进一步学习高级组件和动画效果
3. 技术掌握不足
- 单一职责原则实践不够彻底,有时类和方法仍然过于复杂
- 集合框架中Map和Set使用经验不足
- 调试技能有待提高,过于依赖打印调试
- 自定义异常和异常处理最佳实践需要加强
- 设计模式知识欠缺,仅了解少量常用模式
采坑心得
-
设计先于编码:在雨刷系统扩展题目中,急于编码导致大量返工。深刻体会到良好设计的重要性,特别是遵循开闭原则,通过扩展而非修改实现功能增强。
-
代码可读性:电梯题目中复杂的if-else结构没有充分注释,后期调试极其困难。教训是:
- 方法功能单一化
- 添加清晰注释
- 使用有意义的命名
- 避免过长方法(使用SourceMonitor检测)
-
测试驱动开发:自己构造测试用例的能力不足,导致PTA提交后才发现问题。学会:
- 边界值测试
- 异常情况测试
- 使用JUnit框架(需要更多练习)
-
开发工具:初期过度依赖简单编辑器,后期转向IDEA后发现:
- 代码提示提高效率
- 调试工具节省时间
- 重构功能保障代码质量
-
协作学习:与同学交流讨论可以:
- 快速定位问题
- 学习优秀设计思路
- 避免重复踩坑
但要保持独立思考,不能简单复制解决方案
改进建议
-
教学方面:
- 增加设计模式基础知识的介绍
- 提供更多实际项目案例解析
- 加强调试技巧的专项训练
-
作业设计:
- 后期PTA题目可减少类图提示,增强设计能力考核
- 实验指导书可更详细说明要求边界
- 增加代码评审环节,学习评价他人代码
-
课程组织:
- 线上视频可增加分段标记,便于复习查找
- 翻转课堂可增加学生互评环节
- Blog作业可增加中期反馈机制
-
实践环节:
- 引入持续集成概念,体验自动化测试
- 增加重构实践,体验代码质量改进过程
- 提供更多集合框架的应用场景
总结
本门课程让我从面向过程思维成功转向面向对象思维,主要收获包括:
- 掌握了面向对象的核心原则和思想方法
- 提高了系统设计和代码组织能力
- 培养了良好的编程习惯和工程意识
- 增强了自主学习和问题解决能力
虽然课程难度较大,但通过持续努力完成了所有挑战,编程能力和设计思维得到了质的提升。这些收获将为后续课程学习和项目开发奠定坚实基础。感谢老师的悉心指导和课程团队的精心设计,这是一门极具价值的专业核心课程。
浙公网安备 33010602011771号