第三次Blog作业

1.前言

转眼间,Java课程学习已圆满结束。现在,我对本次课程的学习进行总结。

在学习Java的过程中,通过多次Blog作业、PTA作业、实验以及线上线下课程,我收获颇丰。其中,PTA作业和实验是我学习Java知识的主要途径。

在多次PTA作业中,最具挑战性的是第一次迭代作业中的电梯模拟题目,其难点在于复杂的算法设计以及我对Java语言的不熟悉。其次让我印象深刻的是统计关键字的题目,这两个题目让我受益匪浅。相比之下,其他PTA题目难度较低,主要考察类的设计,算法难度不高。

而在实验中,最有挑战性的则是最后一次JavaFX作业。由于我没有系统学习过JavaFX,导致完成起来较为困难。第一次实验同样让我感到吃力,由于我还不适应仅给出大纲要求的学习方式,以及对归并排序算法的不熟悉,导致实验未能成功完成。

这些经历让我深刻体会到学习编程的过程中,算法设计、语言熟悉度以及实践能力的重要性。虽然遇到了不少困难,但正是这些挑战让我不断进步。

2.面向对象技术总结

在本次 Java 课程的学习中,我深入接触了面向对象技术的核心概念,包括封装、继承、多态、抽象类、接口、集合框架、异常处理以及 JavaFX 等。通过 PTA 作业、实验等教学环节的实践,我对这些内容有了较为系统的认识,但也发现了一些自身掌握上的不足。以下是我对各部分内容的详细总结:

1.封装

封装是面向对象编程中最基础的概念之一。通过封装,可以将对象的属性和行为隐藏起来,仅通过公共接口与外界交互,从而提高代码的安全性和可维护性。在刚开始了解到封装的概念时,我有点难以理解到底什么事封装,但是当我在课上看过了一个个实例代码以及老师的解释之后,终于有了自己的理解,封装就是一个黑匣子,让对象内部的属性只有自己能够看见,外部的代码只能通过get和set方法产生互动。通过这种方式,我深刻体会到了封装的便利性,它不仅能够保护数据,还能方便地对类进行扩展和修改。然而,我也意识到在封装过程中,需要合理设计接口,避免过多的公共方法暴露内部实现细节,这是我今后需要进一步优化的地方。

2继承

继承是面向对象编程中实现代码复用的重要机制。通过继承,子类可以继承父类的属性和方法,从而减少重复代码的编写。但是不能滥用继承,要遵守is-a原则,例如:有个父类动物类,老虎,狮子等类可以继承自动物类,但是植物类不能继承,尽管植物类中可能有着相同的属性。通过这个过程,我学会了如何合理地使用继承来构建清晰的类关系。但我也发现,在一些复杂的继承关系中,容易出现继承层次过深、类结构混乱的问题。因此,我需要在今后的学习中更加谨慎地设计继承关系,避免过度使用继承导致代码难以维护。

3.多态

多态是面向对象编程中最具灵活性的特性之一。它允许使用父类类型的变量来引用子类对象,并在运行时根据实际对象的类型调用相应的方法。多态往往与接口以及抽象类相关联,比如我有一个抽象类Animal,还有两个具体子类Tiger,Lion,我在创建Tiger实例时,可以使用Animal Tiger = new Tiger()的形式,这就是多态的一个体现。通过这些实践,我对多态的原理和应用有了更深入的理解,但在实际使用中,我有时会混淆多态与重载、重写的区别,需要进一步加强这方面的学习和理解。

4.抽象类与接口

抽象类和接口是 Java 中实现抽象编程的重要工具。抽象类可以定义一些通用的方法和属性,但不允许直接实例化,只能通过子类来实现具体的逻辑。接口则更进一步,它只定义方法的签名,不实现具体的方法内容,通过接口可以实现多个类之间的解耦。例如,在pta的航空系统作业中,我定义了一个支付接口,包含了支付方法的签名。然后,我定义了微信支付、支付宝支付等类,分别实现了支付接口中的支付方法。通过这种方式,我实现了不同支付方式之间的解耦,方便了系统的扩展和维护。然而,我在学习过程中发现,抽象类和接口的选择有时会让人感到困惑。例如,在某些情况下,抽象类和接口都可以实现类似的功能,但它们的使用场景和语义有所不同。因此,我需要进一步加深对抽象类和接口的理解,以便在实际开发中能够正确地选择和使用它们。

5.集合框架

Java 的集合框架提供了丰富多样的数据结构,如 List、Set、Map 等,用于存储和管理对象集合。其中我使用最多的就是ArrayList以及Linkedlist其中的ArrayList使用起来十分方便,因为他可以通过add方法自动添加,不用我手动添加,并且还有sort方法能够实现不同规则的排序。除此之外的其他集合框架我并没有过多的了解。除此之外我还发现,在处理复杂的数据结构时,容易出现性能问题。例如,在对大量数据进行排序或查找时,如果不合理地选择集合类型,可能会导致程序运行缓慢。因此,我需要进一步学习集合框架的性能特点和优化方法,以便在实际开发中能够高效地使用集合框架。

6.异常处理

异常处理是 Java 中用于处理程序运行时出现的错误和异常情况的机制。通过捕获和处理异常,可以避免程序因错误而崩溃,提高程序的健壮性和可靠性。在学习java的过程中,我基本没有没有使用过异常的捕获等(只在javafx中使用过),这是因为现阶段的代码相较之下还较为简单,不用使用复杂的异常抛出,但是我已经意识到异常处理的重要性,尽管目前代码较简单,未涉及复杂异常。未来我会加强处理异常的学习,合理使用try-catch,掌握内置和自定义异常,提升程序的健壮性和可靠性。

7.javafx

JavaFX 是 Java 用于开发图形用户界面(GUI)的框架。在最后一次实验中,我首次接触了 JavaFX。由于之前没有进行系统性的学习,我对 JavaFX 的掌握程度相对较低。在实验过程中,我遇到了很多困难,如布局设计、事件处理等。虽然最终完成了一个简单的 GUI 程序,但程序的界面设计不够美观,功能实现也不够完善。通过这次实验,我认识到 JavaFX 在开发图形界面应用程序中的重要性,也意识到自己在 GUI 开发方面的不足。因此,我计划在今后的学习中,加强对 JavaFX 的学习和实践,掌握更多关于布局管理、控件使用、事件驱动等方面的知识,提高自己的 GUI 开发能力。

8.总结

通过本次 Java 课程的学习,我在面向对象技术的多个方面都有了一定的收获。我掌握了封装、继承、多态等基本概念的使用方法,能够通过抽象类和接口实现抽象编程,熟练使用集合框架来存储和管理数据,以及通过异常处理增强程序的稳定性。同时,我也认识到了自己在 JavaFX 等方面的不足。在今后中的学习,我将继续深入学习这些技术,弥补自己的不足之处,进一步提高自己的编程能力和技术水平。

3.踩坑心得

1.在学习 Java 的过程中,我发现仅仅依靠文字解释很难深入理解新概念。例如,在学习抽象类和接口时,仅通过阅读定义和理论解释,我很难它们理解的区别和应用场景。直到我看到具体的代码示例,才逐渐明白它们的用途。经验教训:理论知识是基础,但实际代码示例是理解复杂概念的关键。在今后的学习中,我会主动寻找更多代码示例,结合实际代码来理解新概念。

2.在 PTA 作业中,我遇到了很多算法相关的题目,其中最让我头疼的是电梯模拟题目。由于我对算法的理解不够深入,加上对 Java 语言的不熟悉,导致我在设计算法时思路混乱,代码也难以实现预期功能。经验教训:算法是编程的核心,我意识到自己需要加强算法的学习,多做练习,提升逻辑思维能力。

3.在最后一次 JavaFX 实验中,由于我没有进行系统的 JavaFX 学习, GUI对 开发的布局管理、控件使用和事件处理都不熟悉,导致实验完成得非常吃力。我花了很多时间在调试和查找资料上,但仍然无法完全实现预期功能。经验教训:对于不熟悉的领域,不能临时抱佛脚,需要提前系统学习,积累基础知识。在今后的学习中,我会提前规划学习路径,系统地学习 JavaFX 和其他相关技术。

4.在学习过程中,我很少主动使用异常处理机制,导致程序在运行时容易崩溃。经验教训:异常处理是提高程序健壮性的关键,我需要在后续学习中主动引入异常处理,合理捕获和处理异常。

4.改进建议及总结

通过本次 Java 课程的学习,我收获颇丰,但也发现了一些可以改进的地方。在课程整体设计上,内容安排合理,从基础到进阶逐步深入,为学生构建了完整的知识体系。然而,在一些细节方面仍有改进空间。例如,在最近的统计关键字题目中,算法难度较高,很多同学都感到吃力。这反映出课程在算法教学上或许可以增加更多基础练习,帮助学生逐步提升逻辑思维能力。此外,对于 JavaFX 等较复杂的内容,建议提前安排系统学习,避免学生因临时学习而感到吃力。在作业和实验方面,可以适当增加一些提示和案例,帮助学生更好地理解和完成任务。课上和课下的组织方式也值得优化,比如增加互动环节和线上答疑,提升学习效率。总体而言,这门课程为我打下了坚实的基础,我期待未来能在此基础上进一步提升自己的编程能力。

posted @ 2025-06-21 17:05  方的一匹  阅读(26)  评论(0)    收藏  举报