课程总结性Blog

一·前言
在这一学期的 Java 面向对象课程学习中,丰富多样的学习任务与实践环节构成了充实的学习旅程。

1.Blog 作业贯穿整个课程,它不仅要求我们对知识点进行梳理总结,还锻炼了文字表达与知识归纳能力,每一次的撰写都是对学习内容的深度复盘。我们在撰写Blog的过程中,也能再次对自己作业中的代码进行回顾,回忆起完成作业时突破的重重困难与挑战,在其中查漏补缺,从中获取更多的进步。Blog一般都是包括总结归纳,完成难度适中,需要花较多的时间认真分析。
2.PTA 作业则是对理论知识的即时检验,其题目类型多样、难度逐步递增,从基础语法到复杂逻辑实现,不断挑战着我们的编程能力。每次pta题目难度有高有低,难度高时,完成题目时会比较吃力,对题目的逻辑抓不准,考虑的情况不够完整,
3.实验环节实验环节堪称理论与实践交融的关键枢纽,它以迭代式的项目任务为载体,引导我们在代码的持续打磨中深化对知识的理解。每一次实验,都是从搭建基础框架开始,依据实验要求实现核心功能。随着后续迭代,新的需求不断加入,加入ArrayList,加入多态和继承的应用,又加入javaFx应用。在这个过程中,我们反复研读代码、调试修改,逐步将课堂所学的抽象概念转化为可运行的程序,不仅巩固了知识,更学会了如何在实际开发中灵活运用。
4.线上课程构建起一座知识宝库,海量的教学视频、拓展资料与课后习题应有尽有,打破了时间与空间的限制,让我们能在碎片化时间里随时开启查漏补缺之旅。我们随时随地都可以查漏补缺,我们在这个学习过程中需要主动规划学习进度,提前钻研关键知识点。从被动接受知识灌输,转变为主动探索知识奥秘,培养了自己独立学习的能力,而不是一味的依赖课堂学习,从而可以如同羽翼渐丰的鸟儿,在知识的天空中自由翱翔。。
5.线下课堂则是思维碰撞的活力场域。老师摒弃枯燥的纯理论讲解,以贴近生活、贴近实际开发的丰富实例为引,将抽象晦涩的概念编织成通俗易懂的知识网络。在案例剖析与互动答疑中,我们不仅掌握了书本之外的实用编程技巧,更在与老师、同学的交流探讨里,敏锐察觉到自身学习的薄弱环节。无论是代码逻辑的优化思路,还是调试过程中的疑难杂症,都能在课堂互动中及时得到解决,每一次的思想交锋,都成为我们突破学习瓶颈、提升编程能力的阶梯。

整体来看,课程的工作量饱满,各环节紧密相连、层层递进。前期的基础内容难度尚可,但随着面向对象核心概念以及集合框架、JavaFX 等进阶知识的引入,学习难度显著提升,不过也正因如此,让我们在攻克难题的过程中实现了编程能力的飞跃。

二·面向对象技术总结

1.封装、继承与多态
(1)通过 PTA 作业和实验项目,我对封装、继承和多态有了深刻的理解。封装将数据和操作数据的方法绑定在一起,隐藏对象的内部实现细节,这在 PTA 的类设计题目中体现得淋漓尽致。例如,设计一个类,将里面的一些属性私有化,并通过公共的 getter 和 setter 方法进行访问和修改,不仅保证了数据的安全性,还提高了代码的可维护性。

(2)继承实现了代码的复用,在实验中,我们创建了一个动物类作为父类,然后通过继承派生出猫类、狗类等子类,子类可以继承父类的属性和方法,并根据自身特点进行扩展和重写。多态则让同样的方法调用在不同的对象上产生不同的行为,如在实现图形绘制的实验中,定义一个图形抽象类,其派生出圆形、矩形等子类,每个子类重写绘制方法,通过多态,我们可以使用统一的调用方式绘制出不同的图形,大大增强了程序的扩展性和灵活性。

2.抽象类与接口

抽象类为子类提供了一个通用的框架,它包含抽象方法,要求子类必须实现这些方法,这在构建具有层次结构的类体系时非常有用。接口则更侧重于定义一种规范,一个类可以实现多个接口,这使得 Java 的类具有了多继承的特性。在实验开发中,我利用接口实现了不同功能模块的解耦,例如,定义一个数据存储接口,不同的实现类可以分别实现文件存储和数据库存储,方便程序根据需求进行切换,这让我深刻体会到了抽象类和接口在提高代码可维护性和可扩展性方面的强大作用。不过,在复杂的继承与接口实现关系中,有时会出现方法调用混乱的情况,说明我对这部分知识的掌握还不够娴熟。

3.集合框架、异常与 JavaFX

(1)集合框架的学习让我在处理大量数据时有了更高效的工具。通过 PTA 作业,我熟练掌握了 ArrayList、HashMap 等常用集合类的使用方法,了解了它们的特点和适用场景。在题集 5-7 中高频使用:用 LinkedList 存储电梯请求队列,利用其高效的插入删除特性处理动态请求;题集 9 中用 HashMap<String, Cargo> 按货物编号快速检索,查询效率比 ArrayList 提升约 3 倍。
(2)异常处理机制的学习则教会我如何编写健壮的程序,在实验中,当遇到文件读取失败、数据格式错误等问题时,合理的异常捕获和处理能够让程序更加稳定运行。在题集 9 的日期解析中改进:最初直接捕获 Exception 并打印堆栈,导致输入 "2025/06/16" 格式日期时程序崩溃且无法定位问题。后改为分别捕获 ParseException 和 NumberFormatException,并提示 "日期格式应为 yyyy-MM-dd",用户体验显著改善。
(3)JavaFX 作为图形界面开发工具,在实验项目中用于实现用户界面。从最初的界面布局设计到事件处理,我逐步掌握了 JavaFX 的基本使用方法。但在实现复杂的界面交互效果和动画时,常常感到力不从心,不能及时的正确使用javafx里面的各项功能,对 JavaFX 的高级特性和样式定制方面还需要进一步学习和探索。

3.采坑心得
在这门课程的学习征途上,我曾多次踏入 “误区”,但每一次 “踩坑” 都成为了宝贵的学习契机。​

(1)初期,对封装概念的模糊认知让我在 PTA 作业中频频受挫。我习惯性地将类的属性直接暴露在外,随意进行访问和修改,全然不知这已严重破坏了程序的安全性与可维护性。当程序运行出现莫名错误,我在冗长的代码中反复排查,却始终找不到症结所在。后来,通过逐字研读代码规范,仔细剖析优秀代码示例,我才明白封装的精髓在于合理控制访问权限,用精心设计的 getter 和 setter 方法筑起数据的安全防线,至此程序的稳定性才得以大幅提升。​
 (2)在输入处理过程中时常出现漏洞,对输入的划分不得当。例如题集 5 中处理电梯请求时,用 Scanner 读取整数后直接调用 nextLine (),导致读取到残留换行符。如输入 "1\nUp" 时,nextInt () 读取 1,nextLine () 读取空字符串,而非 "Up"。最终通过添加 scanner.nextLine () 消耗换行符解决(如int num = scanner.nextInt(); scanner.nextLine();)。
(3)在编写代码过程中,我因缺乏前期规划陷入了 “代码泥潭”。起初,为了快速实现功能,我未对类的结构和层次进行系统设计,只是一股脑地编写代码。随着功能模块不断叠加,代码逐渐变得杂乱无章,大量重复代码如同野草般肆意生长,逻辑错误也如影随形。更糟糕的是,在调试过程中,程序常常因一处细微的逻辑漏洞陷入死循环,或是输出与预期相差甚远的结果。我在断点调试与代码比对中耗费大量时间,却收效甚微。这次惨痛的教训让我深刻认识到,开发前使用 UML 类图进行严谨的架构设计是多么关键,它就像一张精准的地图,能指引我们在代码的迷宫中避开混乱与错误。​例如题集 8 的航空货运系统初期未规划类结构,将 Flight、Order、Cargo 的逻辑混杂在 Main 类中。重构时按 "领域模型" 拆分:Flight 类管理航班信息,Order 类处理订单逻辑,Cargo 类负责货物计算,使代码可读性提升。
(4)异常处理环节同样布满 “荆棘”。我曾简单粗暴地将所有异常统一捕获,仅仅打印出一句笼统的错误信息便草草了事。这种处理方式在程序运行正常时看似相安无事,但当真正出现问题时,我面对这些毫无价值的错误提示,就像在黑暗中摸索,根本无法定位问题根源。
(5)在一些 PTA 题目和实验任务中,我还因对题目逻辑理解偏差、判断条件设置错误,导致程序无法通过全部测试用例。例如题集 7 的电梯调度中,未考虑 "电梯空闲时同时处理内外请求" 的场景,导致电梯在一楼待机时忽略外部上行请求。明明觉得逻辑通顺,可运行结果却大相径庭,反复检查代码却难以察觉问题。后来,我开始深入分析业务需求,针对不同的异常类型制定个性化的处理策略,在编写代码前先梳理清晰逻辑脉络,仔细推敲每一个判断条件。经过不断实践,我不仅能更精准地处理异常,还能有效避免逻辑错误,程序的健壮性和正确性都有了质的飞跃。

三·改进建议及总结
1.综合性总结
这门课程让我系统地掌握了 Java 面向对象编程的核心技术,通过大量的作业和实验,实现了从理论到实践的跨越。虽然学习过程充满挑战,但每一次攻克难题后的成就感都让我对编程有了更深的热爱。课程中各教学环节相辅相成,帮助我逐步构建起完整的知识体系,为后续的学习和项目开发奠定了坚实的基础。PTA 题集通过电梯系统迭代训练类设计能力,实验整合学习的ArrayList到多态与继承关系,关联到 JavaFX 与面向对象设计,线上线下课程则从理论和实例两方面提供支撑,在学习过程中在自己亲自掌握面对对象设计,逐步加深对java知识语法的学习。

2.改进建议
(1)在课程教学方面,希望老师在讲解抽象概念时,可以引入更多贴近生活的实际案例,让复杂的知识更容易理解,对学生的疑惑及时做出回应与解答,激发我们对java学习的兴趣。
(2)对于作业和实验,建议在布置任务时提供更详细的需求分析和设计思路引导,给出更多的测试样例,帮助我们理解题目逻辑。特别是对于综合性较强的实验项目,帮助我们更好地规划开发流程。
(3)同时,可以增加一些小组合作的作业或实验,培养我们的团队协作能力和沟通能力,在实际项目开发中,团队合作是非常重要的环节,在小组中,我们可以找到学习的动力,能够更好地表达自己的困惑,有更多的时间与机会和组员共同讨论。
(4)在课上及课下组织方式上,希望能增加更多的互动环节,如小讨论组,让同学们有更多机会交流学习心得和解决问题的思路。另外,可以建立线上学习交流平台,方便同学们在课后随时提问和分享学习资源,营造更浓厚的学习氛围。
(5)在课程平台建立 "题集攻略" 板块,由教师或优秀学生分享题集 5-7 的电梯状态机设计、题集 9 的货物继承体系等难点解析,搭配可视化流程图(如用 Mermaid 绘制类图),帮助学生突破共性难点。对学生作业和实验中出现的常见错误进行归纳总结,尤其是一些容易忽略的易错点。

posted @ 2025-06-18 15:10  桃玖  阅读(16)  评论(0)    收藏  举报