面向对象程序设计学习总结

一、前言

课程总结

  在这个学期中,我们主要学习了Java这一种广泛使用的计算机编程语言,不同于C语言,这是一种纯面向对象的语言,有许多不同之处,因此学习方式也发生了一些变化。我们主要通过Blog作业、PTA作业、实验、线上课程以及线下课程来学习Java。

  Blog作业:本学期一共有三次Blog作业,第一次的Blog作业为布题目集57的总结性Blog,考察的知识点是条件判断与逻辑控制算法设计和类的设计,因为单部电梯调度程序难度较大工作量也较大。第二次的Blog作业为题目集89的总结性Blog,主要考核的是继承与多态的运用,这两个是Java中的核心机制,非常重要,花了很大功夫去学习,难度不算大,工作量也相较于前一个不是很大。第三次Blog则是对本门课程的总结性Blog。

  PTA作业:本学期一个有11次PTA题目集,涉及很多知识点,例如:类间关系,继承与多态等等,其中很多题目是对上一次作业进行迭代,一步步完善,非常适合新手小白学习。题目难度有难有易,大部分题目都可以完成,利用题目增强对知识点地理解与掌握的效果非常好。

  实验:本学期一共有五次实验,是对同一个题目的五次迭代,每次都会增加一下需求,实现不同的功能,以此来满足对各个阶段的学习内容的巩固。

  线上课程:本学期的线上课程包括视频、讨论、考试、题目四部分。用于对学习课程进行补充。

  线下课程:本学期的线下课程主要是在教室在跟着老师学习Java中的知识,通过示例进行理解,还有翻转课堂,锻炼了我们的自学能力和讲解能力。

二、面向对象技术总结

  • 封装:封装是面向对象编程的核心特性之一(其他三个是继承、多态和抽象),是指将对象的属性和实现细节隐藏起来。它是一种将数据(属性)和操作数据的方法(行为)捆绑在一起的机制。简而言之,就是就是将实现一个功能的代码封装到一个类中,这样减少了类之间的依赖,使得一个类的内部实现变化不会影响到其他类。必须满足单一职责原则等设计原则。例如在题目集5中的求解一元二次方程中,就可以将计算算法和展示分别放入专属的类中,即可实现封装。

  • 继承:继承是面向对象编程的核心特性之一,它允许一个类继承另一个类的属性和方法,从而实现代码复用和层次化设计。主要是通过设计子类继承父类的属性和方法来实现,必须满足里氏替换原则等设计原则。例如在题目集9中的图形继承、多态、接口及集合框架中,Circle类和Rectangle类作为AbstractShape的一种,有一些相同的属性和方法,需要将AbstractShape设为基类,Circle类和Rectangle类作为子类,实现代码复用和层次化设计。

  • 多态:多态是面向对象的核心概念之一,它允许对象在不同的上下文中表现出不同的形态。主要作用是增强可扩展性、可维护性和代码复用,主要是通过方法重载、方法重写和接口实现,必须满足开闭原则、依赖倒置原则和 接口隔离原则等设计原则。例如在题目集9中的图形继承、多态、接口及集合框架中,Circle类和Rectangle类作为AbstractShape的一种,有一些相同的属性和方法,但求面积的方法有所不同,需要对getArea进行方法重写,这就实现了多态。

  • 抽象类:抽象类是一种不能实例化的类,它通常作为其他类的基类使用。主要作用是实现代码复用、约束子类行为和支持多态,提高代码的可维护性和可扩展性。开闭原则、依赖倒置原则和里氏替换原则是抽象类设计的核心指导原则。例如例如在题目集9中的图形继承、多态、接口及集合框架中,可以将AbstractShape类设为抽象类,其中getArea方法设为抽象方法。

  • 接口:接口是Java面向对象编程中的一个重要概念,它是一种完全抽象的类型,主要用于定义一组相关类应该实现的方法契约。主要作用是实现多态、支持多重继承和解耦组件。例如在实验四中定义一个接口“有攻击性”:有一个方法返回0或1,表示该动物是否具有攻击性(大象:0;狮子、老虎:1)。

  • 集合框架Java集合框架是Java编程语言提供的一组用于存储和操作数据的类和接口它位于java.util包中。集合框架提供了各种数据结构(如列表、集合、映射等)和算法(如排序、搜索等),使得开发者可以高效地处理和操作数据。集合框架的基本接口。我们常用的集合框架有ArrayList、LinkedList等。例如在图形继承、多态、接口及集合框架中创建list,用户可以循环输入多个图形对象并添加进list中,通过对list进行操作即可快速实现增删改查。

  • 异常:Java异常处理机制是Java语言提供的一种强大的错误处理机制,用于处理程序执行过程中出现的异常情况。Java 的异常处理机制提供了一种结构化的方式来捕获、处理和传播异常,使程序能够更健壮地应对各种意外情况。对于这一项技术,我掌握的并不够,不是很熟练,对应的练习也较少,需要多加练习。

  • JavaFX:JavaFX 是一个用于构建富客户端应用程序的 Java 框架,它提供了创建现代、图形化用户界面的工具和 API。对于我们,主要利用其图形化用户界面的功能。我们的翻转课堂、实验五和GUI作业(JavaFX)均与JavaFX有关,练习较多,但JavaFX的内容多,想要完全掌握还需要一些练习。

三、采坑心得

1、相较于Java,学习C语言练习的题目偏简单,使用一个函数均可完成大部分功能不需要考虑类间关系,但Java不同,它是是纯粹的面向对象语言,需要考虑封装性,需要通过类的相互合作完成功能,同时,需要保证单一职责,一个类应该只负责一项明确的职责,每个类专注于自己的职责,那么在修改或扩展某一功能时,就不会对其他功能造成不必要的干扰,不会牵一发而动全身,提高可读性,增强可维护性和可复用性。Java中有许多设计原则,有着提高软件的可维护性、可扩展性、复用性等作用,在写代码时应尽量满足,时刻注意,使自己的代码更加符合规范。

2、学习在写代码的过程中添加注释,这个是重中之重,需要记得。在以后的学习与工作中,我们不仅要自己写代码,还要与别的同学,同事分工完成工作,如果没有注释的引导,理解起来将困难重重,注释可以帮助理解代码逻辑,促进团队协作提高可读性。

3、写代码需要从等方面考虑,如时间复杂度等等,不应该存在if - else 多层嵌套,if - else 多层嵌套容易使代码结构变得复杂且难以理解,尽量不使用使用if-else多层嵌套,像一些有着相同结果的分支语句可以合并,将它们合并能有效简化代码结构,这样代码变得更加简洁明了,提高了代码的可维护性。例如单部电梯调度问题等。

四、改进建议和总结

改进建议:

教师方面:张晔老师是一个非常尽职尽责的老师,在我程序设计学习道路上给予了很大帮助,非常好的一个老师。无需改进意见。

课程:课程设计方面十分完善,PTA,Blog,实验等多种多样的学习方式,给在学习Java的我带来了很大帮助。

作业:PTA题目集作业可以多一点,多一些迭代的题目,更加锻炼我们的能力。但实验能不能不要在手打了,就是在IDEA中打代码再上传都可以啊,太浪费时间了,有时间还可以多做一做题目啊。另外实验能不能批改的快一点,不知道哪一些地方不对或者可以改进,做的很迷糊。

课上及课下组织方式:课程设计方面十分完善,尤其是翻转课堂,提升学生的学习自主性与效果,增强课堂参与度,培养综合能力,走上讲台让我体会到了当老师的感觉,设计实例让我体会到了老师备课的辛苦,效果很好。

总结:经过这一次学习,我对Java这一门语言有了深刻理解。学习 Java 是一个长期的过程,需要耐心和毅力。调试代码的过程中,我不仅学习,掌握了知识,也激发了我对于Java的学习热情,每一次修改改进我都会收获快乐。我也清楚认识到自己的不足,在代码规范和注释方面尤其是变量命名,做得还远远不够。从基础语法到高级特性,从核心类库到主流框架,每个阶段都需要认真学习和实践。每一个语法细节的正确运用,都让我对 Java 的严谨性有了更直观的感受。通过理论与实践结合,多做练习题,分析优秀代码,参与项目开发,持续学习和总结归纳,可以逐步掌握 Java 编程技能,成为一名优秀的 Java 开发工程师。这一门面向对象程序设计不仅让我掌握了 Java 的基础知识和编程技巧,更培养了我的逻辑思维、问题解决能力和创新思维。在未来的学习和工作中,我会继续坚持学习Java,不断挑战自己,用代码创造更多的可能。

posted @ 2025-06-22 01:33  祖建明  阅读(13)  评论(0)    收藏  举报