第三次Blog作业

一、前言
随着学期的结束,面向对象的课程学习也即将结束。这门课程给我带来最大的收获就是锻炼了许多方面的能力,Blog作业、pta、翻转课堂、实验等等,这些丰富的环节不仅让我收获了知识。也锻炼了我的语言能力和学习能力。这学期本课程共布置了包括此次在内的3次 Blog 作业,要求我们对自己的代码做出分析,以及对自己完成大作业的过程做出总结。撰写 Blog 的目标不仅是对知识的复盘,更是锻炼逻辑表达与知识梳理能力。通过每次撰写,我学会将零散的编程经验系统化。例如,在分析电梯调度程序的状态转换时,通过 Blog 的撰写,我能更清晰地整理出电梯从 “静止” 到 “移动”,再到 “开门处理请求” 的逻辑脉络,这也帮助我加深了对状态机设计的理解。每完成一篇 Blog,都像是搭建起知识框架的一根支柱,让我对课程知识的掌握更加牢固。这学期PTA 作业共有53道题目,其中迭代共有两次,覆盖了 Java 语言从基础语法到高级面向对象特性的众多知识点。从基础的输入输出、数组操作,到复杂的集合框架应用、多态实现,再到大型项目类的设计,如 “单部电梯调度程序” 涉及类的状态管理、请求队列处理与调度算法设计;“航空货运管理系统” 考验对业务流程的抽象能力,需合理设计货物、航班、机场等类及其关系。在完成情况上,多数题目能按时完成,但部分复杂题目耗时较长。例如,在写第一轮大作业“单部电梯调度程序”时,由于基础不够扎实加上没有以万分认真对待,导致未能在规定时间内完成题目,这让我吸取了教训,让我在接下来的作业完成中更加认真。总的来说,这些题目虽然有难度,但极大提升了我的编程实践能力,让我学会将理论知识转化为实际代码解决方案,为之后的学习打下基础。本学期实验环节共设置5个项目,类型丰富,从Java程序控制结构、类与对象、继承与多态、抽象类与接口到用户图形界面,这些实验项目不仅巩固了课堂知识,还让我熟悉了面向对象技术的基础,为后续的学习积累了宝贵经验。此外,本门课程还有线上课程视频可供学习。线上课程内容框架完整,涵盖 Java 语言基础、面向对象编程、高级特性等板块。每个板块下又细分多个章节,如面向对象编程板块包含类与对象、封装继承多态、抽象类与接口等章节,每个章节都配有视频讲解、课后习题。线上课程既可以反复观看视频攻克难点,也能通过课后习题及时检验学习效果,针对错题查阅拓展资料进行查漏补缺。线上课程丰富的资源和自主的学习节奏,很好地弥补了线下课堂时间有限的不足,助力我深入理解课程知识。而在线下课程中,组成小组翻转课堂的形式更是让我们更好的了解了JavaFx的内容,同时也加强了每个人的团队合作能力和交流能力。总的来说,这一个学期的学习让我受益匪浅,虽然学习的过程是有点痛苦的,但是正是这些“痛苦”的经历让我得到了很好的锻炼。
二、面向对象技术总结
在大一学期的面向对象技术学习中,我通过 PTA 作业和实验,对封装、继承、多态等重要概念有了较为深入的理解与实践,同时也发现了自己在一些技术上的不足。​
1、各知识点掌握情况​
(1)封装​
通过 PTA 作业和实验,我明白了封装就是将类的属性和方法 “包裹” 起来。比如在设计一个 “学生” 类时,把学生的成绩、姓名等属性设为私有,再通过公有的 getter 和 setter 方法去访问和修改,这样能有效保护数据,避免外部随意篡改。在实验中编写简单的类时,我熟练运用了封装思想,这让我对数据安全性有了更直观的认识。​
(2)继承​
继承的学习让我觉得很有趣,它就像现实生活中的继承关系一样,子类可以继承父类的属性和方法。例如,“本科生” 类可以继承 “学生” 类的基本属性和方法,同时添加本科生特有的属性和方法,比如毕业论文相关内容。在 PTA 作业中,通过创建继承体系,我学会了复用代码,减少重复编写,提高了编程效率。​
(3)多态​
多态是面向对象的重要特性,同一方法在不同子类中可以有不同的表现形式。在实验中,我定义了 “动物” 父类和 “猫”“狗” 子类,父类有 “叫” 的方法,子类重写这个方法,实现不同动物不同的叫声。这让我理解到,多态让程序更具灵活性和扩展性,后续如果增加新的动物种类,只需要添加新的子类并重写 “叫” 的方法即可。​
(4)抽象类​
抽象类不能被实例化,它就像一个 “模板”,里面可以有抽象方法,让子类去实现这些方法。在 PTA 作业中,我遇到过设计一个图形抽象类,里面包含计算面积的抽象方法,具体的圆形、矩形等子类去实现这个方法。通过这个过程,我明白了抽象类可以规范子类的行为,统一编程风格。​
(5)接口​
接口与抽象类有些类似,但接口更强调一种 “约定”。一个类可以实现多个接口,这打破了类的单继承限制。接口的使用让我体会到,它能让不同类之间实现功能的组合,提高代码的复用性和可维护性。​
(6)集合框架​
集合框架为数据存储和操作提供了很多便利。我学会了使用 ArrayList 存储动态数组,用 HashMap 实现键值对的存储。在 PTA 作业中,当需要处理大量数据时,集合框架帮我高效地完成了数据的增删改查操作。不过,对于一些更复杂的集合类,如 LinkedList 等,我还需要进一步学习它们的特性和使用场景。​
(7)异常​
异常处理让程序在出现错误时更加健壮。通过实验和作业,我掌握了 try-catch-finally 结构,学会捕获和处理不同类型的异常,比如输入数据格式错误时的 NumberFormatException。但在自定义异常方面,我还不够熟练,对异常的传递和处理机制理解得还不够深入。​
(8)JavaFX​
JavaFX 用于图形界面设计,在实验中,我尝试创建了简单的窗口、按钮等组件,实现了一些基本的交互功能。不过,JavaFX 的样式设计和复杂界面布局对我来说比较困难,我还不能很好地设计出美观、实用的界面。​
2、技术认知​
通过学习,我认识到面向对象技术是一种非常强大且实用的编程思想,它让程序结构更加清晰,代码的复用性和可维护性大大提高。封装、继承、多态等特性相互配合,使程序具有更好的扩展性和灵活性;集合框架方便数据管理;异常处理保障程序稳定运行;JavaFX 则为用户提供了可视化的交互界面。这些技术共同构成了一个完整的体系,在软件开发中发挥着重要作用。​
3、存在的欠缺​
虽然对大部分知识点有了一定的掌握,但我仍存在不少不足。在集合框架方面,复杂集合类的应用不够熟练;异常处理中,自定义异常和异常传递机制理解不深;JavaFX 的界面设计能力较弱,难以实现复杂且美观的界面。对于抽象类和接口的使用场景,有时还会混淆,不能准确选择合适的方式进行编程。​在后续的学习中,我计划通过更多的练习和项目实践,深入理解和掌握这些技术,弥补自己的不足,提升编程能力。
三、踩坑心得
学习面向对象这门课程时,我走过不少弯路,也从这些经历中收获了宝贵的经验教训。刚开始学封装、继承、多态这些概念时,我只是死记硬背定义,没结合实际代码去理解。在做pta作业时完全没搞懂实际意义,后来重新学习概念,在实验中反复练习才搞懂。在编程过程中,我还总想着一次性写完代码,不注重调试和测试。有次作业里,程序运行结果和预期不一样,我找了半天都没发现问题。后来学会了分段调试,在关键代码处输出变量值,才发现是方法调用顺序错了。现在我养成了边写边测试的习惯,及时发现和解决问题,效率提高了不少学习新知识一定要结合实际例子理解,不能死记硬背;写代码时要注重细节,多检查边界条件;编程不能急于求成,要打好基础,循序渐进;还要养成良好的调试和测试习惯,及时发现并解决问题。虽然学习过程中遇到了不少困难,但正是这些 “坑” 让我对面向对象技术有了更深刻的理解,也让我的编程能力得到了提升。
四、改进建议及总结
1、课程综合性总结​
学习面向对象这门课程,我从最初对编程概念的模糊认知,到现在能够运用封装、继承、多态等特性完成简单的程序设计,收获满满。​这门课程不仅教会了我具体的编程技术,更让我体会到面向对象编程思想的魅力。
2、改进建议及意见​
(1)对教师教学的建议​
希望老师在讲解抽象概念时,能引入更多有趣又贴近生活的例子,让我们更容易理解。课后可以提供一些拓展学习资料,像优质的编程视频或文章,方便我们深入探索感兴趣的内容。​
(2)对课程内容的建议​
希望能增加一些实际项目案例的讲解,比如小型系统的完整开发过程,帮助我们更好地将知识运用到实际中。​
(3)对作业和实验的建议​
PTA 作业和实验题目的难度跨度有时有点大,建议能设置分层作业,基础题巩固知识点,提高题满足学有余力的同学挑战自我。实验方面,可以在实验指导书中增加一些常见错误及解决办法,这样能节省我们排查错误的时间,提高学习效率。​
(4)对课上及课下组织方式的建议​
课堂上可以多安排一些小组讨论活动,让同学们在交流中碰撞出思维火花,共同解决编程难题。
通过这门课程的学习,我感受到了编程的乐趣与挑战,期待自己在未来的编程学习中不断进步,掌握更多实用的技术。

posted @ 2025-06-21 16:40  高天雨  阅读(15)  评论(0)    收藏  举报