面向对象程序设计课程总结

面向对象程序设计课程总结

前言

经过一学期的学习,面向对象程序设计课程即将结束。与上学期学习的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. 技术掌握不足

  1. 单一职责原则实践不够彻底,有时类和方法仍然过于复杂
  2. 集合框架中Map和Set使用经验不足
  3. 调试技能有待提高,过于依赖打印调试
  4. 自定义异常和异常处理最佳实践需要加强
  5. 设计模式知识欠缺,仅了解少量常用模式

采坑心得

  1. 设计先于编码:在雨刷系统扩展题目中,急于编码导致大量返工。深刻体会到良好设计的重要性,特别是遵循开闭原则,通过扩展而非修改实现功能增强。

  2. 代码可读性:电梯题目中复杂的if-else结构没有充分注释,后期调试极其困难。教训是:

    • 方法功能单一化
    • 添加清晰注释
    • 使用有意义的命名
    • 避免过长方法(使用SourceMonitor检测)
  3. 测试驱动开发:自己构造测试用例的能力不足,导致PTA提交后才发现问题。学会:

    • 边界值测试
    • 异常情况测试
    • 使用JUnit框架(需要更多练习)
  4. 开发工具:初期过度依赖简单编辑器,后期转向IDEA后发现:

    • 代码提示提高效率
    • 调试工具节省时间
    • 重构功能保障代码质量
  5. 协作学习:与同学交流讨论可以:

    • 快速定位问题
    • 学习优秀设计思路
    • 避免重复踩坑
      但要保持独立思考,不能简单复制解决方案

改进建议

  1. 教学方面

    • 增加设计模式基础知识的介绍
    • 提供更多实际项目案例解析
    • 加强调试技巧的专项训练
  2. 作业设计

    • 后期PTA题目可减少类图提示,增强设计能力考核
    • 实验指导书可更详细说明要求边界
    • 增加代码评审环节,学习评价他人代码
  3. 课程组织

    • 线上视频可增加分段标记,便于复习查找
    • 翻转课堂可增加学生互评环节
    • Blog作业可增加中期反馈机制
  4. 实践环节

    • 引入持续集成概念,体验自动化测试
    • 增加重构实践,体验代码质量改进过程
    • 提供更多集合框架的应用场景

总结

本门课程让我从面向过程思维成功转向面向对象思维,主要收获包括:

  1. 掌握了面向对象的核心原则和思想方法
  2. 提高了系统设计和代码组织能力
  3. 培养了良好的编程习惯和工程意识
  4. 增强了自主学习和问题解决能力

虽然课程难度较大,但通过持续努力完成了所有挑战,编程能力和设计思维得到了质的提升。这些收获将为后续课程学习和项目开发奠定坚实基础。感谢老师的悉心指导和课程团队的精心设计,这是一门极具价值的专业核心课程。

posted @ 2025-06-22 02:55  紧张cool  阅读(22)  评论(0)    收藏  举报