南昌航空大学-软件学院-面向对象程序设计-JAVA-Blog(三)

前言:

在大一下学期的学习旅程中,面向对象程序设计这门课程无疑是众多课程中最具挑战性与收获感的一门课程。从PTA作业的实战演练,到实验课的深度探索,再到Blog的学习经验总结,辅以线上课程教学,这段学习经历让我对 Java 编程和面向对象程序设计有了全新的认知,也让我在技术与思维上实现了双重成长。

————————————————————————————————————————————————————————————————

面向对象技术总结:

接下来我将结合各个教学环节(PTA作业,实验)重点总结我对封装、继承、多态、抽象类、接口、异常以及JavaFX等相关内容掌握情况的总结。

  • 封装

封装是面向对象编程的基础,通过将数据和操作数据的方法封装在类中,实现了数据的隐藏和保护。在 PTA 作业和实验中,我学会了简单设计一个类,合理定义类的属性和方法,利用访问修饰符控制成员的访问权限,确保数据的安全性和程序的稳定性。

  • 继承与多态

继承机制让代码复用变得轻松,通过创建子类继承父类的属性和方法,减少了重复代码的编写。例如,在设计一个图形绘制程序时,创建一个 “图形” 父类,再让 “圆形”“矩形” 等子类继承父类,无需重复编写代码,大大提高了开发效率。​在 Java 中,类不能直接实现多继承(即一个类不能同时继承多个父类),但可以多重继承。

多态作为面向对象的重要特性,让同一方法在不同对象上表现出不同的行为。通过方法重载和方法重写,实现了程序的灵活性和扩展性。在动物装入电器实验(二)中,当需要处理不同类型的对象时,多态的应用使得实验代码更加简洁、易于维护。

List equipments = new ArrayList<>();

// 具体子类对象赋值给父类引用
Equipment iceBox = new IceBox(name, capacity);
Equipment washer = new Washer(name, capacity);
Equipment microwave = new Microwave(name, capacity);

// 添加到集合中统一管理
equipments.add(iceBox);
equipments.add(washer);
equipments.add(microwave);

无论从是上课所学内容,还是PTA发布的题目,都不难看出上面这三部分内容是比较简单的,但是却贯穿了面向对象程序设计的始终,想要理解其中的精髓并非易事。

  • 抽象类与接口

抽象类为子类提供了一个通用的框架,包含抽象方法的抽象类强制子类去实现这些方法,保证了子类具有特定的行为。在作业中,我学会了根据实际需求合理设计抽象类,引导子类进行更具体的实现。

而接口则是一种更为灵活的抽象机制,它实现了多继承的功能,让类可以同时实现多个接口,增强了程序的可扩展性。在学习集合框架时,许多类都实现了不同的接口,这让我深刻理解了接口在规范类行为和实现代码解耦方面的重要作用。

如在写第二次大作业(NCHU_航空货运管理系统)时,为方便不同类型货物计算折扣率,我编写了一个接口用于计算折扣率,增强了程序的可扩展性。

// 用于计算折扣率的接口
interface DiscountRate {
double getDiscountRate();
}

  • 异常处理

在 Java 中,异常处理是保证程序健壮性的关键机制。异常处理机制让程序在遇到错误时能够更加优雅地运行。通过 try-catch-finally 语句块,我学会了捕获和处理各种异常,保证程序的稳定性。在实际编程中,合理的异常处理不仅可以提高程序的健壮性,还能方便调试和定位问题。但在写到此处时,我还不能很好地结合实际熟练运用异常处理机制,仍需花费时间敲代码学习。

  • JavaFX

JavaFX这一部分内容是通过翻转课堂,由学生进行教学的。个人对翻转课堂的意见将会在改进建议及总结这部分提到。

JavaFX 用于创建富客户端应用程序,通过实验项目,我初步掌握了 JavaFX 的基本控件使用和界面布局方法。但由于时间有限,我对于 JavaFX 的动画效果和复杂交互功能的实现还不够熟练,后续需要通过更多的项目实践来提升。


在JavaFX的实验中,由于对JavaFX掌握得不够熟练,在交互功能上并未做到完全实现实验要求。

以上就是我对本学期于面向对象程序设计课程所学知识的系统性总结。

————————————————————————————————————————————————————————————————

采坑心得:

回头看了看所有PTA题目集及实验代码,以下是我总结的踩坑心得。

  • 1. 审题不清
    审题是获取信息的唯一来源,关键信息理解错误将会酿成大错。犹记得在第一次阅读大作业(电梯运行)题目时,没有审清题干就动手导致白白浪费了一天。要想培养审题能力也很简单、如逐字阅读:在看题时,不要着急动手写代码,要逐字逐句地去读题目内容,防止遗漏重要信息。比如,题目要求计算某个范围内的质数个数,“某个范围” 就是关键信息,你要准确把握这个范围的边界。或多问自己问题:读完题目后,多问自己一些问题,比如 “题目要求实现什么功能?”“有哪些输入和输出?” 以一个简单的题目为例,若题目是 “编写一个 Java 程序,计算两个整数的和并输出结果”,你可以问自己 “输入的两个整数有没有范围限制?”“输出结果的格式有要求吗?”以避免二次修改代码。

  • 2.搞明白再下手
    在中期学习过程中,我走过不少弯路。初期,由于对封装和继承的概念理解不透彻,在编写代码时经常出现属性和方法访问权限混乱的问题,导致程序运行出错。后来通过反复阅读教材和查阅资料,结合实际案例分析,才逐渐理清思路。
    此外,在实验三中,由于前期没有做好详细的设计规划,导致后期代码结构混乱,难以维护和扩展。吸取这次教训后,我开始重视项目设计阶段,先绘制类图和流程图,明确程序的整体架构再敲代码。

  • 3.代码注释
    程序猿最讨厌的两件事:
    1、读别人代码没注释
    2、给自己代码写注释
    又或者
    第一天
    我:我的代码只有我和上帝看得懂[歪嘴]
    第二天
    我:应该只有上帝看得懂我的代码了[悲]
    不是我说,以上笑话想必每个人都经历过吧。写 Java 代码时,注释就像给自己和队友留的 “救命纸条”,说不定哪天你翻看代码的时候就用的上,尤其是稍微复杂一点的项目,不加注释过几天谁也看不懂。还有就是注释要写清楚,注释的意义在于清晰传达代码意图,不然看不懂写了也是白搭。

  • 4.放平心态
    在 Java 代码编写过程中,保持良好心态是高效学习与开发的关键。首先,正视错误与失败是迈出的第一步,代码报错、功能无法实现是编程常态,不妨将错误信息当作系统给出的 “线索”,逐步排查解决。其次,合理规划时间与任务,避免因急于完成复杂功能而陷入焦虑。
    此外,注重劳逸结合也十分重要,古人云,山重水复疑无路,柳暗花明又一村。长时间盯着屏幕不仅容易疲惫,还可能导致思维僵化。感到烦躁时,不妨离开电脑,待思路清晰后再回归代码。也可以与同学分享遇到的困难,他人的经验或建议或许能让你豁然开朗。编程之路本就充满挑战,保持平和心态,才能走得更远 。

————————————————————————————————————————————————————————————————

改进建议及总结:

总结

这门课程系统地讲解了面向对象编程的核心知识和 Java 语言的实用技术,通过多样化的教学环节,让我在理论和实践方面都得到了充分锻炼。不仅提升了我的编程能力,还培养了我面向对象的思维方式,就是有时太搞人心态。

改进建议
回顾这门课程所学知识,我学的最不好的就是JavaFX。这一部分知识由学生教学,教学内容多而杂,大作业还要反复运用,我认为大部分同学和我一样是没有熟练掌握这部分知识的。可以说图形化界面的知识80%全靠自学,课上基本上学不到什么东西,希望教学组能够加以改进。

以上是我对这门课程的全面总结。

posted @ 2025-06-16 10:00  YOLO5917  阅读(69)  评论(0)    收藏  举报