Java课程总结性Blog
一、前言
本学期,共计完成 11 次 pta 作业、5 次实验以及 2 篇总结性 blog,整体任务安排节奏合理,在个人可承受的学习强度范围内,既保证了知识的巩固与实践,也给予了自我提升的空间。
实验环节作为理论联系实际的重要载体,整体难度较高,工作量也相对较大。面对任务要求中表述模糊、界定不清的部分,我需要自主查阅大量资料,深入研究相关技术文档,从底层逻辑出发进行梳理与推导,通过反复验证和优化,逐步完善代码框架与功能实现。在完成代码编写后,将其誊抄至实验提交系统的过程同样不容忽视,不仅要严格遵循系统格式规范,确保代码缩进、注释等细节准确无误,还需进行多轮检查校验,以保证提交内容的完整性与准确性,这一过程耗费了不少时间与精力。
在 11 次 pta 作业中,除压轴题外的题目,凭借日常积累的编程知识和解题经验,我能够较为高效地完成。而压轴题通常涉及复杂算法设计、数据结构综合运用等进阶内容,对编程能力和思维深度提出了更高要求。三次压轴题中,货运系统迭代作业因逻辑结构相对清晰,我得以顺利推进;但电梯问题和统计 Java 程序中关键词出现次数的任务,由于涉及多线程调度、文本解析等复杂技术,需要我不断调整思路,优化代码逻辑。在攻克难题的过程中,我通过查阅专业文献、与同学交流探讨、向老师请教等方式,逐步突破瓶颈,实现了从困惑到理解、从生疏到熟练的转变。
总结性 blog 的撰写,是对学习过程的系统性复盘。在回顾代码设计、调试及迭代的全过程中,我能够深入反思自身在知识掌握、代码编写等方面的不足,提炼有效的学习方法与技巧。将实践中的心得体会转化为文字,不仅加深了对专业知识的理解,也进一步提升了技术总结与表达能力,为后续学习积累了宝贵经验 。
线下课程搭配线上辅助课,时间充裕且习题练习助查缺补漏,收获颇丰。线下JavaFX翻转课堂因内容本身难度高,同学讲解不够深入,更多需自学,导致该部分学习难度较大,后续需投入更多时间通过文档与项目实践强化掌握。
二、面向对象技术总结
(一)对各部分技术的认知
封装
封装是面向对象编程的基础,通过访问控制符(private、protected、public)隐藏对象内部状态,仅暴露必要的访问接口。它能够有效保护数据安全,提升代码的可维护性,避免外部非法操作导致的数据错误,同时在团队协作中确保类对外接口的稳定性。
继承
继承建立类之间 “是” 的关系,使子类得以复用父类的属性与方法,并在此基础上扩展新功能,实现代码复用。不过,过度使用会造成类层次结构复杂,降低程序灵活性,增加维护难度。
多态
多态作为面向对象的核心特性,借助方法重写和接口实现,支持不同对象对同一消息作出不同响应。它极大地提高了代码的可扩展性与灵活性,是众多设计模式的基石。
抽象类
抽象类是不可实例化的类,用于定义子类的公共接口与部分实现,介于普通类和接口之间。它常作为 “模板”,强制子类实现特定方法,确保子类遵循统一规范的同时保留实现的多样性。
接口
接口是完全抽象的类型,仅包含常量和抽象方法,实现了 Java 的 “多继承” 效果,允许类实现多个接口。它适用于定义行为规范,能够有效促进系统的松耦合设计,方便功能的扩展与维护。
集合框架
集合框架提供了一系列处理数据集合的类和接口,如 List、Set、Map 等。它克服了数组固定大小的局限,具备丰富的操作方法,是实际开发中高效处理数据的核心工具。
异常处理
异常处理机制用于捕获和处理程序运行时的错误,通过 try - catch - finally 结构提升程序的健壮性。它将错误处理代码与正常业务逻辑分离,增强了代码的可读性和可维护性。
JavaFX
JavaFX 是 Java 的 GUI 框架,用于开发富客户端应用。它提供现代 UI 组件、CSS 样式支持和动画效果,相比 Swing 在界面呈现上更美观、交互更灵活,但涉及 FXML、事件处理等概念,学习难度相对较高。
(二)学到了什么
封装:在设计各类系统实验时,我学会运用private修饰类的属性,将数据隐藏在类的内部,通过public的getter和setter方法提供外部访问接口。比如在学生信息管理系统实验中,将学生成绩属性设为私有,并在setter方法中添加成绩范围校验逻辑,有效避免无效数据写入,增强了数据安全性;同时,这种方式也使类的内部逻辑与外部调用分离,提升了代码的可维护性。
继承:在构建类体系的实验中,我熟练掌握了子类继承父类属性和方法的规则,清晰界定 “是” 关系在编程中的实际应用。以动物类继承体系实验为例,子类复用父类的移动、进食等行为方法,同时根据自身特性扩展特有的功能,实现了代码的高效复用;并且在实践中深刻认识到,需要合理控制继承层次,防止类结构变得过于复杂,影响程序的可维护性和扩展性。
多态:通过图形绘制等实验项目,我深入理解了多态的三种表现形式。利用父类引用指向子类对象,结合方法重写机制,实现了不同图形(如圆形、矩形)绘制的多态效果。这一过程让我切实体会到多态在提高代码扩展性方面的强大能力,当后续需要新增图形类型时,无需对原有核心绘制代码进行大幅修改,仅需创建新的子类并实现相关方法即可。
抽象类:在设计系统框架的实验中,我学会了定义抽象类和抽象方法,并将其应用于形状抽象类及其子类的设计。通过抽象类强制子类实现特定方法,为子类统一了行为规范,有效约束了子类的实现方式,确保整个类体系的一致性。这让我深刻认识到抽象类在搭建系统框架、规范代码结构方面起到的关键作用。
接口:在系统功能模块划分实验中,我熟练掌握了接口的定义与使用,透彻理解其完全抽象的特性。通过让类实现多个接口,为类赋予多种功能,成功实现了 Java 的 “多继承” 效果,有效降低了模块之间的耦合度。这使系统在后续功能扩展时更加灵活,能够轻松应对不同需求的变化。
JavaFX:在 JavaFX 应用开发实验中,我从基础入手,逐步掌握了使用 FXML 和 Java 代码结合构建用户界面的方法,学会了布局管理和事件处理等关键技术,熟练掌握了常用 UI 组件的使用。尽管目前仅能完成基础界面设计,但通过实践,我对 JavaFX 开发桌面应用的流程和技术要点有了较为全面的基础认知,为后续深入学习和开发复杂应用奠定了良好基础。
(三)欠缺
在学习过程中,我也清晰认识到自身存在明显不足。目前最大的短板在于代码设计逻辑层面,编写的代码常出现结构混乱、功能模块重复冗余的问题,不仅增加了维护成本,也降低了代码的可读性与扩展性,对设计模式的应用仍停留在理论认知阶段,难以将其有效融入到实际开发中。此外,JavaFX相关技术的掌握程度较弱,在复杂界面的动画效果实现、动态数据绑定等方面存在较大困难,难以将其灵活运用到实际项目中。同时,对于异常处理的全局规划与最佳实践也缺乏经验,导致程序在面对复杂错误场景时的健壮性不足,这些都是后续需要重点攻克的方向。
三、踩坑心得
根据几次压轴题的踩坑心得:
1、字符串值比较必须使用 equals 方法
在 Java 中,使用双等号(==)比较字符串时,实际比较的是两个字符串对象的内存地址(引用),而非字符串内容。若需比较字符串内容是否相同,必须使用equals()方法或其变体。
2、使用制表符替代空格缩进
代码中需要输出 4 个空格的缩进时,应统一使用制表符(\t)代替空格。制表符具有更好的可移植性,且能避免不同编辑器因空格显示不一致导致的格式问题。
3、输入读取问题
Java输入读取时,混合用next()与nextLine()会因缓冲区残留换行符致字符串读取为空,next()读含空格输入时仅取至首个分隔符。解决需在混合读取时用nextLine()清缓冲,读含空格输入直接用nextLine(),也可统一用nextLine()读取后自行解析。
四、改进建议及总结
建议:实验指导书若能补充输入输出格式的具体示例(如样例输入结构、输出字段排版要求),可帮助同学们更精准理解任务标准;实验提交系统若能优化代码提示功能(如编译错误定位、运行异常时的输入输出对比示例),将有效提升调试效率。减少学生讲课的部分,因为有时我们讲的没有老师的细致深入,逻辑性也较差,后面还需要我们自己去重新学习会拉低效率。
总结:学习Java课程,我掌握了面向对象编程核心技术,如封装、继承等,也能用集合框架与异常处理机制开发程序,但JavaFX应用和代码设计能力较弱,存在逻辑混乱、代码冗余问题。课程中线上线下结合的模式利于学习,不过JavaFX翻转课堂效果欠佳,后续我会针对性提升薄弱环节。

浙公网安备 33010602011771号