第三次博客

前言
不知不觉间一学期的面向对象程序设计课程即将落下帷幕,回顾这段学习历程,既有初次接触新编程思想的迷茫,也有攻克难题后的成就感。课程通过 Blog 作业、PTA 编程训练、实验项目、线上线下课程等多重环节,培养了我们的编程能力,教会了我们什么是面向对象程序设计。
PTA 作业
从基础语法到设计循序渐进,总体来说是本门课程的难点所在。完成PTA作业过程中,前期不好好看题,之后数小时的返工调整让我深刻理解了需求分析的重要性。
实验项目
五次实验以 “动物与电器” 为主题迭代展开,前四次侧重类设计与继承体系构建,如从 Animal 父类派生出老虎、狮子等子类,实现进入冰箱等行为。第五次引入 JavaFX 进行界面设计。总的来说,难度不高,主要是通过应用加强我们对所学知识的熟练度。这种设计既巩固了当期知识点,又通过项目迭代培养了系统设计思维,唯一遗憾的是实验提交系统不支持代码粘贴,手动输入易引发拼写错误,排查问题时效率较低
线上课程
线上课程作为预习工具,提供了基础知识框架,尤其在概念的初步讲解上发挥了作用。遗憾的是没注意截止时间,有一些课程关闭前没有完成观看。
面向对象技术总结
首先是继承,继承通过 extends 关键字实现类间代码复用,子类自动获得父类的属性与方法,是 “is-a” 关系的具象化。在计算图形面积的 PTA 作业中,创建 Shape 父类定义公共属性,Circle 与 Rectangle 子类继承并重写 getArea 方法,极大减少了代码冗余。学习过程中曾混淆 “继承” 与 “组合” 的适用场景,如误将 “汽车 - 发动机” 关系设计为继承,后来通过 “has-a” 与 “is-a” 的辨析,明确了组合更适合表达包含关系。目前对继承的使用已较为熟练,但在多层继承的方法调用顺序调试上仍需加强。
然后是多态,多态让不同类的对象通过相同接口展现不同行为,是面向对象灵活性的核心体现。在航空货运系统实验中,定义Payment接口包含pay方法Alipay与WechatPay实现类各自重写该方法,通过接口引用调用时自动匹配具体实现。理解多态的关键在于掌握 “动态绑定” 机制,初期曾困惑于父类引用为何能调用子类特有方法,通过单步调试观察方法查找顺序后才豁然开朗。
接着是抽象类与接口,抽象类通过abstract关键字定义模板,既包含抽象方法也可有具体实现,适合定义事物本质;接口则全由抽象方法构成,用于定义行为能力在动物类设计中,将“叫”定义为抽象类 Animal 的抽象方法,强制子类实现;而“飞”“跑”等能力则通过接口定义,让动物类按需实现。初期常混淆两者区别,如在接口中添加非抽象方法导致编译错误,通过对比实践总结出:当需要提供默认实现时用抽象类,需要多继承时用接口。
最后是JavaFX,JavaFX用于构建图形界面,在第五次实验中设计航空管理系统时首次接触。从布局管理器(VBox/HBox/AnchorPane)到控件事件处理(按钮点击、文本输入),每个环节都充满挑战。初期界面元素排列混乱,按钮事件响应逻辑错误,通过查阅文档与视频教程才逐步掌握。目前仅能实现简单界面,对动画效果、自定义控件等进阶功能掌握薄弱。
采坑心得
需求分析缺位导致的返工危机,在首次处理电梯调度 PTA 作业时,未深入分析需求就急于编码,误以为只需实现电梯上下行逻辑,却忽略了多楼层同时呼叫、优先级调度等隐含要求。代码写到一半发现逻辑漏洞,不得不推倒重来,浪费了大量时间。后来学会用状态图梳理业务流程,如绘制电梯 “待机 - 上行 - 下行 - 休眠” 状态转换图,需求清晰后编码效率显著提升。这让我明白,需求分析是编程的第一步,宁可多花时间分析,也不要盲目动手。
编码规范缺失引发的维护困境,初期编程不注重规范,变量名随意,缺乏注释,代码结构混乱。在完成动物排序实验后一周,再看自己的代码竟难以理解逻辑,尤其是复杂的比较器实现部分。后来强制自己遵循 “见名知意” 原则(如 studentList 代替 list),在关键逻辑处添加注释(如 “// 处理动物年龄排序”),代码可读性明显提高。调试时也发现,规范的代码能更快定位问题,减少了因变量名歧义导致的错误。
改进建议及总结
与各位老师,助教相比我的专业知识远远不如,那就以本课程的体验者提出一点建议。
实验成绩未实时显示。作为一门会造成不小数目同学挂科的课程,我认为阶段性的给同学们公布一下实验和实验报告的成绩既可以给处于挂科边缘的同学带来紧迫感,也可以让其他同学更有方向性的优化自己的实验报告。
个人成长感悟
这门课程教会我的不仅是编程技术,更是解决问题的思维方式。从电梯题的反复调试到 JavaFX 界面的磕绊实现,每一次困难都是成长的契机。面向对象的设计原则,使代码从混乱走向清晰。

posted on 2025-06-20 01:17  古人类  阅读(17)  评论(0)    收藏  举报