第三次Blog作业-对本门课程的总结性Blog

  • 前言
    本学期的面向对象程序设计课程内容丰富而充实,涵盖了Java语言的核心特性以及面向对象编程的核心理念。课程通过多种形式展开:PTA作业、实验课、线上视频学习以及线下理论讲解,形成了一个完整的学习体系。
    从工作量来看,PTA作业和实验占据了大部分时间,特别是后期的JavaFX图形界面开发部分,代码量明显增加。难度方面,课程呈现渐进式提升的特点,从基础的封装、继承开始,到多态、抽象类和接口,再到集合框架和异常处理,最后是JavaFX应用开发。每个阶段都有相应的挑战,但通过逐步积累,最终能够掌握核心概念。
    线上课程提供了灵活的学习方式,可以反复观看难点部分;线下课程则更注重互动和即时答疑,两者相辅相成。实验课是理论联系实际的重要环节,通过动手实践加深了对概念的理解。

  • 面向对象技术总结

  1. 封装
    通过PTA作业和实验,我深刻理解了封装作为面向对象第一特性的重要性。封装不仅仅是使用private修饰属性,更重要的是通过合理设计类的接口(public方法)来控制对内部状态的访问。例如在"图形类设计"作业中,通过将图形的属性设为private并提供计算面积和周长的公有方法,实现了良好的封装。

  2. 继承
    继承是代码复用的重要手段。在"员工薪资计算"实验中,通过建立Employee基类和各类子类(如Manager、SalesPerson等),我掌握了如何合理设计继承层次结构。关键收获是理解了"is-a"关系是使用继承的前提,以及如何通过方法重写实现多态行为。

  3. 多态
    多态性让我印象深刻,特别是在集合框架中处理不同类型的对象时。例如在"动物园管理系统"实验中,通过Animal基类引用指向不同的子类对象(Lion、Elephant等),实现了统一处理不同动物的行为。多态与继承、方法重写紧密相关,是面向对象最强大的特性之一。

  4. 抽象类与接口
    抽象类和接口是面向对象设计中的重要工具。在"银行账户系统"作业中,使用抽象类Account定义公共行为,而接口(如InterestBearing)则用于跨继承层次的行为。我认识到抽象类适合"是什么"的关系,而接口更适合"能做什么"的关系。目前对何时使用抽象类、何时使用接口还需要更多实践经验。

  5. 集合框架
    集合框架是Java中极其实用的部分。通过多次实验,我掌握了ArrayList、HashMap等常用集合的使用,理解了泛型在集合中的应用。在"学生成绩管理系统"中,使用HashMap存储学生信息(学号为键)大大提高了查询效率。但对迭代器的使用和复杂集合(如嵌套集合)的操作还不够熟练。

  6. 异常处理
    异常处理是编写健壮程序的关键。从最初的简单try-catch,到自定义异常类,我逐步掌握了异常处理机制。在"文件读写操作"实验中,通过合理处理IOException等异常,使程序更加稳定。但有时仍会过度捕获异常,或者未能充分区分检查型异常和非检查型异常。

  7. JavaFX
    JavaFX是课程后期的重要内容,也是最具挑战性的部分。通过"个人收支管理系统"项目,我学会了基本的UI组件使用、事件处理和场景切换。但感觉对FXML布局、CSS样式以及MVVM模式的理解还不够深入,动画和高级特效方面也缺乏实践。
    下图是我做的一个运用javaFX技术做的一个作业。

  • 采坑心得
    过度设计问题:在初期作业中,我有时会过度使用设计模式或创建不必要的类层次,导致代码复杂化。例如在一次实验中,我试图为简单的计算器应用实现策略模式,反而增加了不必要的复杂度。教训是:设计应该与问题规模相匹配,简单优于复杂。
    忽视代码复用:有几次作业中,我重复编写了相似的代码而没有提取公共方法或基类,导致后期修改时需要多处改动。例如在不同图形类中重复编写面积计算逻辑。后来学会了识别重复模式并合理抽象。
    异常处理不当:初期经常简单地捕获所有异常并打印堆栈跟踪,没有针对性地处理或向用户提供友好提示。在一次实验中因此丢失了重要数据。后来学会了区分异常类型,并实现适当的恢复策略。
    JavaFX线程问题:在JavaFX项目中,曾因在非UI线程更新界面组件导致程序崩溃。通过Platform.runLater()解决了这个问题,但教训深刻:必须理解并尊重UI线程模型。
    版本控制忽视:前期作业没有使用Git等版本控制,当实验代码出现问题时难以回退。后来建立了定期提交的习惯,大大提高了开发效率。
    测试不足:有些作业在完成主要功能后没有充分测试边界条件,导致PTA提交时出现意外错误。后来养成了编写简单测试用例的习惯,特别是针对边界情况。
    通过这门课程,我不仅掌握了Java语言和面向对象技术,更重要的是培养了良好的编程思维和问题解决能力。虽然还有很多不足,但这些经验教训将成为我继续进步的基础。
posted @ 2025-06-22 17:15  刘海霄  阅读(25)  评论(0)    收藏  举报