BLOG3 课程总结

  • 前言
    经过一学期的 Java 面向对象程序设计课程学习,我深刻领略到 Java 语言的强大与精妙。课程通过 “PTA 编程挑战 + 实验项目实践 + 线上线下混合学习” 的闭环模式,将 “面向对象” 从抽象概念转化为可落地的代码逻辑,让我真正体会到其设计原理的魅力。
    PTA 平台上的编程挑战是提升能力的关键。例如电梯调度算法题,我曾花费整整两天时间调试,不断优化电梯运行逻辑和楼层分配策略。在这个过程中,我不仅掌握了多线程同步与状态机设计,更感受到攻克难题后的成就感。实验项目则让我将知识学以致用,线上资源的自主学习与线下课堂的深度探讨相辅相成。课前通过慕课视频预习核心概念,课上结合老师讲解和翻转课堂,我对抽象类与接口的多态应用和JavaFX的使用有了更深的领悟。这种循序渐进的学习节奏,从基础语法夯实,到面向对象核心特性(封装、继承、多态、抽象类 / 接口)的深入理解,再到 JavaFX 图形界面开发的实践,让我的编程能力得到了稳步提升。
    虽然课程工作量较大,但每一次调试代码的坚持、每一个功能模块的成功实现,都让我收获满满。这段学习经历不仅让我掌握了 Java 编程技能,更培养了我分析问题、解决问题的思维方式,为后续专业学习奠定了坚实基础。

  • 面向对象技术总结
    在本学期 Java 课程学习中,通过 PTA 作业、实验等教学环节,我对面向对象编程的核心技术有了系统实践与深入思考。以下结合具体项目,总结各技术模块的掌握情况与学习感悟。

  1. 封装:
    在航空货物管理系统实验中,我将货物的name、id、dimensions等属性设为private,通过getName()等方法实现受控访问。例如,在setWeight()方法中添加了重量阈值校验逻辑,避免非法数据写入,这一设计使数据安全性显著提升。
    通过PTA作业和实验的锻炼,我深刻认识到封装是面向对象编程的基础。它将数据和操作数据的方法捆绑在一起,形成一个独立的单元。使外部的代码不能直接改变其中的属性。
  2. 继承:
    在 “电器装载动物” 实验中,我构建了Appliance父类与IceBox等子类,以及Animal父类与Tiger子类的继承体系。子类复用了父类的capacity(容量)等属性,还可以根据自身的特点重写父类的方法。而且继承还便于代码扩展,当有新的需求出现,需要创建新的类时,可以基于现有的类进行继承和扩展,在已有功能的基础上快速添加新的特性。
  3. 多态:
    在 PTA “点线面” 绘图题目中,我定义Shape抽象类,然后通过继承创建了点类、线、面类等具体图形类。在展示这些基本元素时时,使用抽象类的引用指向具体点线面类的对象,调用统一的展示方法,根据对象的实际类型执行不同的展示逻辑。很好的实现了多态的优势。利用多态可以使用统一的接口来处理这些对象,而无需针对每种对象类型编写不同的处理代码,大大提高了代码的灵活性和可扩展性。
  4. 抽象类:
    在航空货物支付模块开发中,我创建Payment抽象类,定义pay()抽象方法和。WeChatPay、Alipay子类继承该抽象类并实现支付逻辑。通过使用抽象类,不仅实现了代码的复用,还提高了代码的可维护性和扩展性。但在实际应用中,如何准确地判断哪些类应该定义为抽象类,以及如何合理地设计抽象类的抽象方法和具体方法,还需要进一步积累经验。
  5. 接口:
    接口是一种特殊的抽象类型,它只包含常量和抽象方法的定义,不包含任何实现代码。接口的主要作用是实现多继承的功能,提高代码的灵活性和可扩展性。在学习过程中,我通过实现接口的方式,使不同的类可以具有相同的行为,从而实现了代码的复用和功能的扩展。
  6. 集合框架:
    在 Java 关键字统计作业中,ArrayList1用于存储解析后的关键字,通过它提供的各种方法,分割并储存元素,删除注释元素,遍历元素去查找,方便地对Java关键字数据统计进行操作。使用了ArrayList2,实现了Java关键字的查找。
  7. 异常:
    异常处理机制是 Java 语言中用于处理程序运行时错误的重要手段。在学习过程中,通过捕获和处理各种异常类型,我学会了如何使程序在遇到错误时能够更加健壮和稳定地运行。例如,在历次实验中都需要以文件读取的方式输入数据时,都需要使用 try - catch 块捕获 FileNotFoundException 和 IOException 等异常,确保程序在文件不存在或读取过程中出现错误时能够正常处理。
  8. JavaFX:
    JavaFX 是用于创建富客户端应用程序的框架,在实验项目中,我尝试使用 JavaFX 进行图形用户界面(GUI)的设计和开发。通过学习 JavaFX 的布局管理器、控件使用和事件处理机制,我成功地实现了一些简单的用户界面。例如,在这次的航空货运系统的实验项目中,使用 JavaFX 设计了登录界面、物流查询界面和物流管理界面等,通过合理地布局控件和处理用户事件,提高了系统的易用性和交互性。但在使用 JavaFX 的过程中,我也遇到了一些问题,如 JavaFX 与其他技术的集成、复杂界面的设计和优化等,还需要进一步学习和探索。

通过本学期学习,我完成了从理论认知到实践应用的跨越,但在技术的深度理解与综合运用上仍有提升空间,需要在今后的学习和实践中不断加强。

  • 踩坑心得
    1、需求分析:
    在电梯调度 PTA 作业中,因未深入理解题目规则,盲目编写电梯逻辑,导致三次代码重构。提交多次仍未通过,最终发现是对 “电梯方向与请求楼层关系” 的状态逻辑判断错误。例如,题目明确规定上行状态下仅响应高于当前楼层的 UP 请求,而我凭经验处理楼层顺序,致使输出与样例冲突。
    2、代码设计:
    初期开发航空货运系统时,因未规划类关系,导致基类与子类属性高度耦合,频繁修改字段命名。例如,将货物管理、支付、报表功能全部集中在Main类,代码可维护性极差。
    3、实践与理论:
    在 JavaFX 学习阶段,我花费大量时间观看教程、研读文档,自认为对界面布局、事件处理、文件操作等知识已掌握,但在航空货物管理系统界面开发实践中,却遭遇诸多困境:文件读取时异常处理逻辑混乱…… 这些问题暴露了理论学习与实际应用间的巨大鸿沟 —— 即便熟悉,也难以应对真实场景中复杂的逻辑交织与细节处理。

  • 改进建议及总结

这门课程不仅教会了 Java 编程技术,更重要的是培养了面向对象的思维方式。从最初只会 “堆砌代码” 到现在能够考虑 “封装、扩展、复用”,每一次作业和实验都是一次思维的升级。在学习过程中,虽然遇到了许多困难和挑战,但也从中吸取了宝贵的经验教训,提高了自己的问题解决能力和自主学习能力。这门课程让我深刻认识到软件工程是一门理论与实践紧密结合的学科,只有将理论知识应用于实际项目开发中,才能真正掌握软件工程的精髓。

未来的学习中,我需要在以下方面加强:

1.设计模式的深入应用:目前只掌握了基础模式(如工厂模式、单例模式),需要学习更多设计模式以优化代码架构。
2.面向对象设计原则的熟练运用:设计类时要机场考虑到单一职责原则,开闭原则等面向对象设计六大原则,降低类与类之间的耦合度。
3.集合框架的练习:将存储、管理和操作对象组融会贯,同时联系Map类型的应用。
4.深入学习JavaFX:提高自己在图形用户界面设计和开发方面的能力,如学习高级布局管理和事件处理。

posted @ 2025-06-22 12:00  Dazx  阅读(28)  评论(0)    收藏  举报