第三次Blog作业

前言:
整个面向对象程序设计课程有11次PTA作业,前四次题目集都是基础的类设计,都是较为熟悉的题目,在此期间对Java语言有了一个初步的认识,题目难度普遍较低,只要将上学期的C语言代码稍加改动就能完成,工作量较小。第5次到第7次为第一阶段的作业,迭代升级为电梯程序,此次作业中我并未完成电梯程序,对于电梯运行的底层逻辑一直存在错误,对我来说难度较大,工作量也较大不仅要研究题目还要去网上找List、ArrayList等的相关用法,但每个题目集的前两题较为简单且工作量较小在2个小时内就能完成。第一阶段后迎来了第一次Blog作业,对第一阶段的电梯程序进行系统性总结,了解此时自身存在的问题,对Java掌握的哪里不足,以及对后续的学习方向,目标进行规划。总的来说第一次Blog作业难度不大,工作量也适量。接下来就是第二阶段,第8次到第9次PTA迭代作业为航空货运管理系统,这是我第一个完整做完的迭代作业。对于此次作业的难度是有的但比之电梯程序降低,工作量我觉得并未减少,特别是此次作业以为是一个较为完整的航空货运订单,涉及到的订单信息较多导致变量名很多,很容易将发件和收件的地址电话姓名弄混。紧接而来的就是第二次Blog作业,这次Blog的难度稍稍提高,上次我只用写哪里做不出来,哪里不懂,这次我要解释我的思路,我如何做的类设计,怎么解决遇到的困难。工作量也对应提高。至此本课程的迭代作业结束,第10次PTA是对继承多态的专项训练,难度稍大,我对继承与多态的掌握远远不够导致题目对我来说较难,工作量也是提高,我需要去网上自学继承与多态。第11次PTA作业的前三题是上学期的期末考题,第一题简单很快就能解决,第二题涉及到继承多态的使用对我来说难度飙升,第三题更是涉及到了ArrayList的使用和Comparator的运用,这也是我的盲点,所以我未能在2小时内完成所有考题。最后一题是与数据结构相关的题目,作为下学期的引言,在了解皮毛后,难度太大我未能完成。然后就是此次Blog作业,难度很小,但要对本学期的整门课程进行总结,工作量不小。接下来说说实验,实验从一到五都是围绕将动物放进容器,最后一次实验涉及javaFX的使用,前四次难度都较小,但最后一次如何通过JavaFX进行用户图形界面设计难度较大,很多功能都不知道如何实现。总的来说实验的难度中偏高,但工作量很大,每一次实验的源代码都要提交到实验室系统,因为没有粘贴,每次都要手打,经常坐在电脑前一坐就是4个小时朝上。线上课程和线下课程难度都较小,老师的讲课结合实例较为易懂,课程中唯一有难度的就是翻转课堂,因为时我们上台讲课,前期有很多准备工作,不仅要学习自己要讲的内容,之前同学的讲课也要认真学习,不懂的还要自己回去上网课。总的来说面向对象这门课程难度还是较大的,工作量是与难度相适应的。
面向对象技术总结:
一、各技术点掌握情况​
(一)封装​
在课程初期的基础类设计 PTA 作业中,我对封装有了初步实践。通过将类的属性私有化,并提供公共的访问方法,实现了对数据的保护和合理访问控制。例如在一些简单的类设计题目里,将对象的成员变量进行封装,外部只能通过特定的 getter 和 setter 方法来操作,这让我理解了封装可以提高数据的安全性和类的可维护性 。但在复杂的系统设计中,如航空货运管理系统作业,对于如何合理封装大量的订单信息相关属性,以保证代码的简洁性和高效性,还存在不足,有时会出现属性和方法封装混乱的情况。​
(二)继承与多态​
在第 10 次 PTA 对继承多态的专项训练中,我深刻意识到自己对这两个概念掌握的欠缺。题目要求通过继承实现不同类之间的共性抽取和差异化扩展,利用多态实现同一方法在不同子类中的不同表现,但我由于对继承关系的梳理不够清晰,以及对多态中方法重写的规则理解不透彻,导致在解题过程中困难重重。不过通过查阅资料和学习,我逐渐认识到继承可以提高代码的复用性,多态则增强了程序的扩展性和灵活性 。在后续学习中,还需要更多实践来熟练运用这两个重要特性。​
(三)抽象类与接口​
对于抽象类和接口,在理论学习上有了一定认知,知道抽象类可以包含抽象方法和具体方法,用于定义一些具有共性但又不完全相同的类的模板;接口则是一种特殊的抽象类型,只包含抽象方法,常用于实现多继承和定义规范。但在实际应用中,如在解决实际问题进行类设计时,还不能准确判断何时该使用抽象类,何时该使用接口,缺乏将理论应用到实际场景的经验。​
(四)集合框架​
在电梯程序作业中,为了处理电梯运行过程中的数据,我开始接触 List、ArrayList 等集合框架。通过上网查找资料学习其用法,能够实现一些基本的数据存储和操作,比如在处理电梯楼层队列等场景中,ArrayList 的动态扩容和方便的元素添加、删除操作给我留下了深刻印象。然而在第 11 次 PTA 作业中,涉及到 ArrayList 的使用和 Comparator 的运用时,由于对 Comparator 接口的定制排序规则掌握不熟练,导致无法顺利完成相关题目,说明对集合框架的深入应用还存在较大不足。​
(五)异常​
了解了 Java 的异常处理机制,包括 try - catch - finally 语句的使用,能够捕获和处理一些常见的运行时异常和编译时异常。在编写代码时,也会有意识地考虑可能出现的异常情况并进行处理。但对于自定义异常类的创建和使用,以及在复杂程序中如何合理地抛出和处理异常,还缺乏足够的实践和经验。​同时对于异常的学习时长过于短暂,也不够系统。
(六)JavaFX​
在最后一次实验涉及 JavaFX 的使用时,我遇到了巨大困难。如何通过 JavaFX 进行用户图形界面设计,实现各种功能组件的布局、交互以及事件处理等,对我来说几乎是全新的领域。很多功能都不知道如何实现,如界面元素的动态更新、用户输入的有效验证等。虽然通过查阅资料对 JavaFX 有了一些初步了解,但距离能够熟练运用其开发出完整、实用的图形界面程序还有很长的路要走。​
二、学习收获与认知提升​
通过这门课程的学习,我对 Java 面向对象编程有了系统的认识,从最初对 Java 语言的初步接触,到逐步理解和运用各种面向对象的概念和技术,实现了从理论到实践的跨越。认识到面向对象编程通过封装、继承、多态等特性,可以使程序结构更加清晰,代码复用性和可维护性更高 。同时,集合框架为数据处理提供了强大而灵活的工具,异常处理机制保证了程序的健壮性,JavaFX 则为图形界面开发打开了一扇新的大门。​
三、存在的不足与改进方向​
目前,我在继承与多态的实际应用、抽象类和接口的合理选择、集合框架的深入运用、异常处理的全面性以及 JavaFX 的实际开发能力等方面都存在明显不足。在后续的学习中,我计划通过以下方式进行改进:一是增加实践项目,多做一些涉及这些技术点的练习题和小型项目,加深对概念的理解和运用;二是阅读相关的技术文档和优秀代码,学习他人的设计思路和编程技巧;三是积极参与交流,向老师和同学请教,及时解决遇到的问题,不断提升自己的编程能力。
踩坑心得:
通过第一阶段的作业,我认识到我的逻辑思维存在缺陷,在面对电梯的运行规则时不能很好的理解,即使后续老师提供了更多的样例,我分析样例却分析出了几种不同的运行规则,这使得程序越改越乱到后面都不知道怎么运行的了,在第一阶段结束后我又尝试了几次,但还是无法实现,经历几次失败后我任然孤军奋战,现在反思觉得在结束后的尝试失败后我应该去找同学看一看正确的代码,或去问老师电梯运行的底层逻辑到底是什么,不应该在失败后就放在那。在学习继承与多态的过程中,在没听懂时没有立刻去找网课补上漏洞反而一拖再拖导致后面的知识点也听不懂,使得整个继承与多态学的一团糟,所以在学习的过程中一定不能养成拖沓的习惯,遇到了问题就要积极去解决,不能想着一会再搞,明天再学。同时再学习的过程中不能偷懒,再刚开时接触Java时,前几次的PTA作业都是拿着上学期的C语言程序直接改,当时应该从头自己写,锻炼自己的编程能力,我在代码能力上的缺陷就是从这里开始的,这告知我不能在学习中偷懒,现在偷的懒在未来都会加倍返还给自己。整个课程学习过程中,我缺乏系统的学习规划和有效的学习方法。在面对复杂作业和知识点时,没有合理安排时间和学习任务,导致学习节奏混乱。同时,在学习过程中,没有形成总结归纳的习惯,对于做错的题目和遇到的问题,没有进行深入分析和整理,使得同样的错误反复出现。在课程开始时老师要求我们记笔记,我也要确实记了,但现在返回来看笔记发现,记的笔记过于混乱,仅仅是按照日期顺序记录笔记。
改进建议及总结:
通过本门面向对象程序设计课程的学习,我实现了从对 Java 语言初步认识到逐步掌握封装、继承、多态等核心面向对象概念,并将其应用于实际编程任务的跨越。在 PTA 作业与实验环节中,我不断在实践中巩固理论知识,从基础类设计到复杂的电梯程序、航空货运管理系统开发,逐步提升了编程能力和问题解决能力。尽管过程中遇到诸多困难,如逻辑思维缺陷导致电梯程序无法完成、对继承多态掌握不足影响作业进度等,但这些挑战也促使我深入反思学习方法,意识到主动学习、及时查漏补缺和扎实代码能力的重要性。同时,课程中的翻转课堂让我从知识接收者转变为传授者,锻炼了自主学习和表达能力,为我带来了全新的学习体验。对老师的建议就是希望能多讲一讲作业当中的题目,除了传授课本上的知识和寻找到的例题,我觉得作业当中的题目也需要讲解,因为这些题目我们在做的过程中经过了长时间的思考,认识更深,也知道哪里不懂,哪里实现不了,而课堂上找的例题则远远达不到这点,所以讲作业中的例题能更快解决我们的疑虑,也能更快提升我们的能力。

posted @ 2025-06-18 16:42  屿上有旅  阅读(31)  评论(0)    收藏  举报