java程序设计_03

              **前言--对于本门课程各个方面的概要性的总结**

在本门 Java 面向对象课程的学习过程中,同样也是我第一次接触并认识java这一门语言,我经历了各种各样的学习任务,包括Blog作业(特别是Blog作业,是一种全新的尝试)、PTA 作业、实验、线上课程以及线下课程等多个环节。整体而言,这些学习任务构成了一个较为系统且全面的学习体系,从不同方面锻炼和提升了我的编程能力与知识储备。
从工作量来看,各类作业与课程安排较为充实。Blog 作业要求我们定期对前几周的PTA作业进行梳理与总结,培养了总结归纳和文字表达能力;PTA 作业数量合适,每周一次,通过不断的迭代训练,既巩固了前面所学的知识,又熟悉了后面学习的知识;实验环节则注重实践操作,需要完成从需求分析、设计到编码实现的完整流程,对动手能力是较好的考验;线上课程资源丰富,包含视频讲解与文档资料,线下课程则以教师的讲解与互动为主,这些都是获取知识很好的途径。
在难度方面,课程内容由浅入深、循序渐进。PTA 作业和实验中,题目都是一步步迭代下来的,部分题目与项目要求对知识点进行灵活运用和综合实践。这些综合性的题目项目训练都有助于我们提高我们的编程能力。
老师都挺好挺负责的,老师布置作业挺人性化的,如果学生很多都没有做出来,老师会适当推迟时间并给学生一些提示点拨,我觉得这些都挺好的。
面向对象技术总结
封装
在学习封装概念时,通过 PTA 作业和实验项目,我对其有了深入理解。封装是将数据和操作数据的方法进行有机结合,隐藏对象的内部实现细节,仅对外提供公共的访问接口。在实际编程中,我学会了将类的属性设置为私有,通过公共的 getter 和 setter 方法来访问和修改属性值。
在掌握程度上,我能够熟练运用封装思想设计类的结构,但在复杂业务场景下,对于如何合理界定属性的访问权限和设计简洁高效的访问接口,还需要进一步加强。有时会出现接口设计过于繁琐,导致代码冗余,这反映出我对封装的理解还不够透彻,未能做到灵活运用。
继承
继承是面向对象编程中实现代码复用的重要机制。在课程学习中,通过 PTA 作业和实验,我学会了创建子类继承父类的属性和方法,并根据自身需求进行扩展和重写。例如,在设计图形类体系时,创建一个父类 “图形”,包含通用的属性和方法,然后通过继承创建 “圆形”“矩形” 等子类,子类继承父类的同时,重写计算面积等方法。但是继承其实并不好,因为继承的耦合性太强,不利于代码的扩展,如果只是想起到代码复用的效果,那应该用关联,聚合等其他关系,但如果要用到多态,那么就可以考虑使用继承关系。如果没用使用好继承,有时会因为不合理的继承关系导致代码逻辑混乱,维护困难。在这里我再帮大家回顾一下合成复用原则:尽量使用对象组合,而不是组合来达到继承关系。
多态
多态是面向对象编程的核心特性之一,它使不同的对象对同一消息做出不同的响应。在学习过程中,我通过实验和作业深刻体会到了多态的强大之处。例如之前的一次pta中的题目就有,在设计一个动物叫声的程序时,定义一个 “动物” 抽象类,包含 “叫” 的抽象方法,然后创建 “猫”“狗” 等子类继承 “动物” 类并重写 “叫” 方法。通过向上转型,将子类对象赋值给父类变量,在调用 “叫” 方法时实现了不同动物发出不同叫声的效果。合理利用好多态,可以提高我们代码的实用性。
抽象类
抽象类为我们提供了一种抽象的概念,它不能被实例化,主要用于定义一些具有共性的属性和方法,为子类提供统一的规范。在实验和 PTA 作业中,使用抽象类来构建类的层次结构。合理运用抽象类来设计程序结构,同样可是提高我们的效率,以及代码的实用性。
接口
接口是一种特殊的抽象类型,它只包含常量和抽象方法的定义。在课程学习中,我通过实践认识到接口可以实现类的多继承,增强程序的扩展性和灵活性。例如,在设计一个交通工具类体系时,定义 “可飞行”“可行驶” 等接口,不同的交通工具类如 “飞机”“汽车” 等可以实现相应的接口,从而具备不同的功能特性。在使用接口时,我能够正确定义和实现接口方法,但在接口的设计原则以及如何通过接口实现模块间的解耦方面,还需要更多的实践和思考,以便提高我们解决综合性问题的能力。
集合框架
Java 集合框架提供了丰富的数据结构和算法,极大的方便我们对数据进行存储和操作。在 PTA 作业和实验中,我广泛使用了集合框架中的 List 等接口及其实现类。通过实践,我对集合框架的常用类和方法有了较好的掌握,但在集合的性能优化、不同集合类型的适用场景选择以及集合的并发操作等方面还存在不足。例如,在处理大量数据时,没有合理选择合适的集合类型,导致程序运行效率低下。
异常
异常处理机制是 Java 程序健壮性的重要保障。在学习过程中,我学会了使用 try-catch-finally 语句捕获和处理异常,通过自定义异常类来处理特定业务场景下的异常情况。例如,在文件读取操作中,使用 try-catch 语句捕获可能出现的文件不存在、读取错误等异常。
虽然能够基本掌握异常处理的方法,但在异常的合理抛出、异常处理的粒度控制以及自定义异常类的设计方面还需要加强。有时会出现异常处理不够完善,导致程序在运行过程中出现意外崩溃的情况。
JavaFX
JavaFx是用于构建富客户端应用程序的框架,功能很强大。第五次实验以及课程后阶段布置的JavaFx互评作业,都在考察并锻炼这我们JavaFX的运用能力。在第五次实验中,我使用 JavaFX 对第四次实验进行界面开发,实现程序的图形化,可视化,实现了简单的用户界面交互功能,如按钮点击事件处理、文本输入与显示等。而后面一次的 JavaFx 互评作业则是对一次之前PTA作业进行UI设计及功能实现,相对于那个实验,这个互评作业的完成难度更高,对于我们的javaFx的掌握程度提出了更高的要求。在我还不怎么熟悉javafx的运行机制之前,我感觉这次互评作业很难,但是经过后面的不断学习,感觉javafx也挺简单的。我觉得只要弄明白它的监听机制,布局容器组件之间的关系,javafx就会变得很简单。
采坑心得
在整门课程的学习过程中,我走过不少弯路,也从中吸取了宝贵的经验教训。
首先,在编程习惯方面,初期我忽视了代码注释和规范命名的重要性。在编写复杂的 PTA 作业和实验项目时,由于缺乏清晰的注释和规范的命名,导致自己在后续调试和维护代码时花费了大量时间去理解代码逻辑。例如,在一个复杂的算法实现中,没有对关键步骤进行注释,一段时间后自己都难以理解代码的执行流程。后来我意识到,良好的编程习惯不仅有助于提高代码的可读性和可维护性,还能在团队协作中发挥重要作用。因此,我开始注重代码注释的添加和变量、方法的规范命名,这大大提高了我的编程效率和代码质量。
其次,在学习新知识时,我往往急于完成作业和实验,而没有深入理解知识点的原理和应用场景。例如,在学习多态时,只是机械地按照示例代码进行模仿,没有深入思考多态的实现机制和使用场景。结果在遇到稍微复杂的多态应用时,就无法正确编写代码。通过这次教训,我明白了只有深入理解知识点的本质,才能灵活运用所学知识解决实际问题。因此,在后续的学习中,我会先花时间研究知识点的原理,结合实际案例进行分析,再进行实践操作。
另外,在调试程序时,我曾陷入盲目修改代码的误区。当程序出现错误时,我没有通过调试工具和错误信息进行仔细分析,而是凭感觉随意修改代码,导致问题越来越复杂。例如,在一次实验中,程序运行时出现了空指针异常,我没有查看异常堆栈信息,而是盲目地在代码中添加各种判断语句,结果不仅没有解决问题,还使代码变得更加混乱。后来我学会了使用调试工具逐步跟踪代码执行过程,根据错误信息准确分析问题所在,从而高效地解决了程序中的错误。
改进建议及总结
课程综合性总结
通过本门课程的学习,我系统地掌握了 Java 面向对象编程的核心概念和技术,从理论知识到实践操作都得到了全面的锻炼。课程的教学内容丰富且具有深度,通过多种教学环节的有机结合,使我在编程能力、问题解决能力和编程思维等方面都有了显著提升。虽然学习过程中充满挑战,但每一次克服困难都让我对编程有了更深刻的认识和更浓厚的兴趣。
小小的建议
课程内容方面:对于一些难度较大的知识点,如多态的实现原理、JavaFX 的高级应用等,可以增加一些拓展性的学习资料,如相关的技术文档、优秀的开源项目代码等,提供给学生深入学习。另外,在课程内容的安排上,可以适当增加一些课程设计项目,让我们有机会将所学的知识进行综合运用,提高实际项目开发能力。
作业与实验方面:PTA 作业和实验题目可以更加多样化,除了基础的练习题和验证性实验外,增加一些具有创新性和挑战性的题目,鼓励我们发挥创造力,运用所学知识解决实际问题。同时,在作业和实验的评价标准中,除了关注代码的正确性外,更加注重代码的规范性、可读性和可维护性,引导我们养成良好的编程习惯。
课上及课下组织方式方面:可以建立线上学习交流平台,方便学生在课下随时交流学习心得、讨论问题。教师也可以定期在平台上发布学习资料、答疑解惑,加强与学生的互动。此外,组织一些学习小组或学习社团,让学生们可以在小组内互相学习、互相帮助,共同提高学习效果。

posted @ 2025-06-16 20:13  小事小事  阅读(11)  评论(0)    收藏  举报