Java课程的总结性Blog

前言

回顾这门课程,我收获了非常多的知识。Java课程的学习形式非常丰富,涵盖Blog作业、PTA 作业、实验、线上与线下课程,这些形式都分别让我学到了很多不同的知识。整体的工作量饱满,不同的环节也各有侧重:
首先就是pta作业,这部分主要侧重知识点的掌握和运用。它的类型广,难度阶梯上升,成为了实践能力检验的主要地方。总结pta里面的作业,我认为最难的就是电梯部分的迭代了,一开始一直没有搞懂电梯运行的内部逻辑。导致前几次的迭代都没有很好的完成。pta里面的作业随着学习的深入,作业要求将封装、继承、多态运用到题目当中。在这些过程中逐渐了解了单一职责原则等原则。让我理解并熟悉了很多知识。
其次是Blog作业,每次在开始完成这个作业的时候,我都会把几次的迭代作业的题目和代码再回顾一遍,对代码里面运用的知识点和原则进行了回顾和总结,并且运用了SourceMonitor分析工具对我写的代码进行分析,发现了代码存在的问题,比如第二次迭代的时候注释部分较少,这对代码的回顾有着阻碍,对迭代作业的总结让我对代码的知识体系进行了重构,整理出清晰的逻辑脉络。这个过程经常要花费整整一个下午的时间。但它能够让我真正理解知识间的关联。在完成后,脑子里面的知识点形成了可复用、可拓展的知识网络,归纳能力也得到了锻炼。
然后就是实验作业,它让我们完成一个完整的系统,是一个较长的过程。本学期的实验围绕“电器-动物”继承体系为例,让我收获了继承与多态的协同实践。一开始的实验聚焦于基础语法,工作量也较小。但随着课程的推进,工作量加大了,实验逐渐转向复杂场景模拟,变得更加复杂。在完成实验的时候我更加熟悉了接口,队列等知识点的运用。
之后就是线上课程,在线上课程里面巩固了上学期C语言的知识点在Java里面的运用,也学习了Java里面特有的基础知识点。在这个的基础上,听线上课程可以预习和复习课上学的知识,比如一些单一职责原则等,在课上听老师说了之后,又在线上课程上面进行了巩固。所以这一部分对于我们上学期学过C语言的来说工作量和难度都不太大。
最后就是线下课程,线下课程老师对知识的讲解让我对Java的很多内容都有了十分深刻的理解,让我对Java的设计有了逐步的了解,为我们打开了很多思路。课堂上也会给我们一些随堂检测,能够让我们对刚讲完的知识点进行掌握和利用。但是随堂检验的题目量没有很大,所以这部分的工作量没有很大。但是有时候上课的内容没有太听懂,所以还是有些难度。
这四种学习方式,从知识梳理、实践检验、项目实战、模式互补的角度,让我们更加理解Java的知识点和设计的逻辑。

面向对象技术总结

封装:

在 PTA 作业和实验里,封装的实践让我明白它是保障数据安全的关键。比如定义一个 Student 类,将 name、age 等属性用 private 修饰,再提供 public 的 getter 和 setter 方法。这样外部无法直接篡改属性,若要赋值,像给 age 赋值时,还能在 setter 里加逻辑判断,确保年龄在合理范围 。这让我理解到封装就是把数据和操作数据的逻辑 “包裹” 起来,对外只暴露安全、规范的访问入口,既保护内部数据完整性,又增强代码可维护性。在pta的训练下,对封装知识的运用较为熟悉。认知到了封装是面向对象的基础,也是构建可靠类结构的前提。

继承:

继承通过extends关键字实现,在实验中创建 Animal 父类,Dog、Cat 子类继承它,子类能直接复用父类的 eat 等方法,还能重写方法体现个性。像 Dog 重写 eat 方法,实现啃骨头的逻辑。这让我看到继承是代码复用的高效方式,能快速构建类的层次体系,体现 “is - a” 关系,大大减少重复代码编写。在pta的作业完成的过程中,也运用了继承的知识,让我写代码的过程简单了许多。继承很好的实现了代码的复用,建立类的层次。但是实际开发中,要把握继承的度,避免过度继承导致类耦合性过高,也是要学习的地方。

多态:

多态依托继承和方法重写实现,父类引用指向子类对象是常用形式。这让程序具备高度灵活性,同一方法调用能适配不同对象,应对需求变化时,只需新增子类实现,无需修改调用逻辑,深刻体会到多态对拓展性的提升。在pta作业当中,定义Shape父类,Circle、Rectangle 子类,通过Shape shape=new Circle()这样的语句,调用 draw方法时,会根据实际对象类型执行对应子类的 draw 逻辑。通过这学期对这部分的学习和认识,掌握了多态的基本使用,但在复杂的多态场景,比如结合抽象类、接口实现更灵活的多态设计,以及深入理解多态的运用 方面,还需要更多实践和理论钻研,像分析多态在大型项目架构里的应用,提升对多态底层原理的认知。

抽象

抽象类用 abstract 修饰,包含抽象方法(只有声明,无实现)和具体方法。在实验中,定义Animal抽象类,有cry抽象方法,让Tiger、Lion子类去实现。它能提炼子类共性,把一些通用属性和部分实现放在抽象类,规范子类行为。比如Animal里的weight属性和获取重量的方法,子类可直接用,抽象的cry方法强制子类根据自身特点实现,这是构建有层次、规范类结构的好工具。在使用抽象部分时,有时难以判断抽象类与接口的选择。就像有些功能,既可用抽象类实现部分逻辑,又能放接口里,后续要结合更多实际场景,梳理清楚二者适用边界,提升架构设计能力。

接口

接口是特殊的抽象类型,用 interface 定义,里面是抽象方法。在实验里面扩展电器、动物功能时,接口作为跨类行为规范,不关注实现者,仅定义行为,解决了行为分散与复用难题。对比继承,接口支持多实现,能灵活补充类的行为维度,突破单一继承限制,让类可具备复合能力,完善面向对象编程的行为扩展体系。同时,接口在解耦与扩展实践中作用显著,更加契合Java中的开闭原则,对子类进行修改,不影响其他模块,实现高内聚低耦合。在本学期,我掌握接口基本使用,但对接口的默认方法、静态方法在复杂项目里的设计应用,以及接口与抽象类协同工作时的最佳实践,了解不够深入,需要学习一些高级用法。

集合框架

Java 集合框架提供多种数据存储结构,主要包括Collection 接口和Map 接口。Collection 接口
所有集合的根接口,定义了基本操作(添加、删除、遍历等),主要子接口:List(有序可重复)、Set(无序唯一)、Queue(队列操作);Map 接口
键值对存储结构,键唯一,值可重复,不继承Collection,但属于集合框架的一部分。在实验中,用ArrayList存储进入电器的动物信息,方便按顺序获取和遍历;用 HashSet 去重数据。它们各自有适用场景,掌握这些能高效处理不同数据存储、检索需求,是 Java 编程中操作数据集合的必备工具。熟悉常用集合的基本操作,但对一些较不常见的部分了解的不是特别多,还需要去深入学习。

异常

异常处理可以让程序更稳健,通过try-catch- finally 捕获和处理异常,用throws声明抛出异常。在实验中,文件读取、网络连接等操作,可能出现 IOExeption、SQLException等,合理处理异常能让程序在遇到问题时,不直接崩溃。掌握基础异常处理流程,但在自定义异常、异常链(多个异常嵌套传递 )的使用等方面,经验不足。对于如何更合理地分类、处理不同类型异常,让程序既稳健又便于调试,还需多实践打磨。

JavaFX

在 JavaFX 的入门学习中,我掌握了基础的界面构建方法,包括舞台(Stage)与场景(Scene)的关系,以及如何使用 Button、Label 等组件创建简单 UI。了解了布局管理器(如 VBox、HBox)的基本用法,能实现元素的简单排列,并通过 CSS 修改组件样式。此外,还学习了事件处理的基本逻辑(如按钮点击事件)和数据绑定的初步应用(如文本框与属性的双向绑定)。不过,目前的学习仍停留在基础阶段。对于复杂组件(如 TableView 的高级应用)、自定义控件开发、动画特效的深入实现(如 3D 场景)以及应用部署打包等技术还未涉及。未来计划通过实践项目,进一步熟悉JavaFX的核心功能,掌握更高级的界面交互技术和性能优化方法。

采坑心得

学习Java这门课程遇到了很多困难
1.一开始编译代码时总提示找不到 javac 命令,配置环境的时候,就让我有点手忙脚乱,面对Eclipse、IntelliJ IDEA、NetBeans 等众多IDE,我一开始选了 Eclipse,因为网上教程多。后来发现插件安装经常出问题,在刚开始Javafx的学习的时候,就遇到了很多问题,使代码运行不了。
2.后面在完成代码的时候,注释写的较少,导致再回头看代码的时候,理解不了每个部分的作用,也不方便代码的查找。
3.在开始一段代码的时候没有分析需求和内部逻辑,导致后面写出来的代码无法通过测试点。如果思路错误的话,代码就需要把逻辑部分重新编写,可能会浪费大量的时间,所以刚拿到代码的需求时要先进行分析,然后再把每个部分列出来,类与对象、属性以及它们之间的关系。
image
4.一开始不理解老师上课说的单一职责原则和开闭原则等等,但是在后面完成代码,特别是迭代的过程中发现,这些原则都是很重要的。在代码迭代的过程中开闭原则可提升可维护性:无需修改现有代码,新增功能时专注扩展,降低改老代码引入 bug 的风险,系统更稳定。并可以轻松应对需求变化,让做出来的系统灵活适配。
学 Java 踩坑是常态,关键得从坑里爬出来。环境配置、语法细节、集合框架这些地方,稍不注意就掉进去。现在我知道,学习要理论结合实践,记好踩坑笔记,写代码注重细节、关注代码的性能与安全。Java 的灵活严谨让我深刻感受到编程世界的精妙平衡,既培养了我的抽象思维与创新能力,又塑造了严谨规范的编程习惯,让我明白优秀的代码不仅要实现功能,更要兼顾稳健与可拓展性。

改进建议及总结

这学期下来,我觉得这个教学体系还是非常完整的,课下的练习也很足够,pta作用和实验的迭代能让我们很好的练习线上线下课程的内容,从而更好地掌握,Blog的总结让我们更好地回顾一个阶段所学习到的知识。线上线下的课程配合,让我们更高效地学习Java这门课程。本学期课程通过理论与实践结合,有效提升了我的编程能力。

posted @ 2025-06-19 16:22  诺一王  阅读(15)  评论(0)    收藏  举报