Blog作业3

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

(1)前言

这门面向对象编程课程的学习之旅已经接近尾声,回顾整个学习过程,收获颇丰,同时也经历了诸多挑战。本课程以理论实践双驱动的模式展开,各教学环节相辅相成又各有侧重。在这门面向对象程序设计课程的学习过程中,Blog作业、PTA作业、实验、线上线下课程共同构成了充实的学习体系。Blog作业要求我们对知识进行梳理和反思,培养了总结归纳与表达能力;PTA作业注重编程实践,题量丰富,从基础语法到复杂逻辑层层递进;实验则聚焦综合性项目开发,锻炼了实际项目的开发能力。线上课程方便随时回顾知识,线下课程通过老师生动讲解和互动答疑,能及时解决困惑。Blog作业贯穿全程,对PTA作业题目集的总结,累计完成2篇,有效锻炼了知识整合与技术写作能力;PTA作业完成11个题目集,题目设计由浅入深,如从简单的类封装练习逐步过渡到继承与多态综合应用,挑战性与趣味性并存;五次实验层层递进,由最初的实验一java程序控制结构,到实验二类与对象,实验三继承与多态,实验四抽象类与接口,实验五用户图形界面,要求我们将碎片化知识转化为完整解决方案。线上课程资源丰富,配套的代码示例与课后测试题便于预习复习,线下课程则通过案例剖析和即时互动,帮助我攻克抽象概念。整体而言,课程工作量饱满,前期内容较为基础,随着知识点的深入,PTA作业和实验的逻辑复杂度逐渐提升,但在逐步攻克难题的过程中,编程能力也得到了显著提升。

(2)面向对象技术总结

  • 封装:封装是面向对象编程中最基础的概念之一,通过将类的属性和方法封装在一起,隐藏内部实现细节,只暴露必要的接口给外部调用。通过PTA作业和实验,我理解了封装是将数据和操作数据的方法进行隐藏,仅对外提供必要的接口。比如在设计类时,将成员变量私有化,通过公有的getter和setter方法来访问和修改。这不仅提高了数据的安全性,也增强了代码的可维护性。通过学习,我掌握了如何合理地设计类的封装结构,明确哪些属性和方法应该对外公开,哪些应该隐藏起来。在实际项目中,我能熟练运用封装思想来规范类的设计。

    • 个人理解:刚开始学习封装的时候认为封装就是使属性私有化然后再得到一套get(),set()方法。后来了解到封装的精髓是通过方法包装了属性访问,封装其实是为了数据赋值和获取的过程中增加额外的控制和验证。就是你在用set()方法对数据进行赋值的时候必须先经过方法中的验证逻辑确保数据的合法性,有效性和安全性。通过方法封装还可以扩展更多的功能,比如数据的验证,格式化等。封装不仅仅是为了隐藏数据,更重要的是保证数据的正确性(这是我从b站上学到的)
  • 继承:继承是面向对象编程中实现代码复用的重要方式之一。通过继承,子类可以继承父类的属性和方法,并且可以添加自己的特性和行为。继承机制允许子类复用父类的属性和方法,通过实验中的类层次结构设计,我掌握了如何定义父类和子类,以及子类对父类方法的扩展。例如,设计一个图形类作为父类,圆形、矩形等作为子类继承其基本属性和绘图方法,再根据自身特点重写。但在多重继承带来的复杂性处理上还不够熟练

    • 个人理解:继承主要是体现代码的复用和扩展,子类继承父类的属性和方法体现的是代码的复用,然后子类可以重写父类的方法也可以添加自己特有的方法和属性体现代码的扩展。个人感觉掌握情况不错,不过对多重继承还不是很熟练。
  • 多态:多态是面向对象编程中最灵活和强大的特性之一。它允许使用父类类型的引用指向子类类型的对象,并且在运行时根据实际对象的类型调用相应的方法。多态体现在方法重写和接口实现上,PTA作业中经常需要根据不同对象类型调用相同方法实现不同功能。通过实践,我深刻体会到了多态带来的灵活性。多态使得代码更加通用和可扩展,能够编写出更加灵活的框架和库。然而,在理解多态的原理和实现机制时,我遇到了一些困难。例如,方法的重载和重写之间的区别,以及如何通过动态绑定来实现多态。通过查阅资料和反复实践,我逐渐掌握了这些知识点,但仍然需要在实际项目中不断加深理解和应用。

    • 个人理解同一个指令不同的对象不同的表现形式
  • 抽象类与接口:抽象类和接口是面向对象编程中用于定义规范和契约的重要工具。抽象类可以定义一些共有的属性和方法,但不能直接实例化,需要由子类继承并实现抽象方法。接口则是一种更灵活的规范定义方式,可以被多个类实现,实现类必须实现接口中的所有方法。抽象类用于定义具有部分实现的通用模板,接口则强调行为的规范。在实验中,当需要定义一些具有共性但又不完全相同的类时,我会合理选择使用抽象类或接口。如何合理地使用抽象类和接口来设计系统的架构。例如,当需要定义一组相关的类的共同行为时,可以使用抽象类;当需要定义一组不相关的类的共同接口时,可以使用接口。例如,定义一个抽象的动物类,再通过具体动物类继承;对于飞翔、游泳等行为,则使用接口来规范。不过在接口的组合使用场景上还需要更多实践。

    -个人理解:抽象类中子类与父类是is-a的关系,接口中继承与被继承之间是has-a的关系

  • 集合框架:Java的集合框架提供了丰富的数据结构和操作方法,用于存储和管理对象集合。在PTA作业和实验中,我广泛使用了集合框架中的类,如ArrayListLinkedList等。通过实践,我掌握了集合框架的基本操作,如添加、删除、查找元素等,以及如何根据不同的场景选择合适的集合类型。例如,当需要频繁地插入和删除元素时,LinkedList可能是一个更好的选择;然而,在使用集合框架时,我也遇到了一些问题,如集合的线程安全性问题。在多线程环境下,直接使用集合框架可能会导致数据不一致的问题,需要使用同步机制或选择线程安全的集合类。这让我意识到,在实际开发中,需要充分考虑线程安全问题,避免潜在的错误。

    • 个人理解:这一知识点比较简单主要是掌握ArrayList,LinkedList的方法使用,元素的增删改查
  • 异常:异常处理是Java编程中用于处理运行时错误和异常情况的重要机制。课程中学习了如何捕获和处理异常,在PTA作业和实验里,我学会了通过try-catch块来处理可能出现的异常情况,提高了程序的健壮性。不过对于自定义异常的应用还不够熟练

    • 个人理解:异常包括受检异常Checked Exception和非受检异常Unchecked Exception。通过try-catch-finally捕获处理异常,关闭资源,避免程序崩溃,提升稳定性。
  • JavaFX:JavaFX是Java用于开发图形用户界面(GUI)的框架。在翻转课堂中,我接触到了JavaFX的基本使用方法,如创建窗口、添加控件、设置布局等。通过实验项目,我学会了如何使用JavaFX设计简单的用户界面,如登录界面、图书馆预约界面等。然而,JavaFX的学习难度相对较大,涉及到的组件和布局方式较多,需要花费大量的时间和精力去熟悉。在实际开发中,我还需要进一步提高自己的JavaFX设计能力,学习如何优化界面布局和交互效果。JavaFX这一章的学习主要是通过翻转课堂的形式进行的,个人感觉的这种教学效果还不错通过学生交流学习的形式,每个小组负责一部分对内容进行总结干货满满。

    - 个人理解:javaFx就是一套专门用来给java程序“画”漂亮窗口界面的工具包
    (3)采坑心得

在学习过程中,我走过不少弯路。例如,在初期对类和对象的概念理解模糊,导致在编写代码时类的设计不合理,后期需要大量修改。在PTA作业中,曾因为忽略边界条件的判断,导致程序运行出现错误,花费了大量时间调试。另外,在使用集合框架时,没有注意集合元素的类型约束,引发类型转换异常。通过这些经历,我明白了在编程前要做好需求分析和设计规划,编写代码时要严谨细致,注重边界条件和异常处理,遇到问题多查阅资料、向老师和同学请教,避免在同一个问题上反复出错。

  • 继承:
    方法重写的时候要保证子类方法的方法名,参数列表,返回值类型必须与父类被重写的方法完全相同

  • 抽象类
    抽象类不能实例化对象

  • 异常
    之前没没学过异常处理,在PTA作业的时候老是会抛出非零返回
    (4)改进建议及总结

这门课程让我系统地掌握了面向对象编程的思想和Java语言的相关技术,培养了良好的编程习惯和解决问题的能力。对于课程,建议在讲解一些复杂知识点(如多态、集合框架)时,可以增加更多实际应用场景的案例分析,帮助我们更好地理解。在作业方面,希望可以提供更多具有趣味性和创新性的题目,激发学习兴趣。对于实验,可以增加小组合作项目,锻炼团队协作能力。老师在教学过程中讲解细致、耐心答疑,非常感谢老师的付出,如果能在课上增加一些学生分享和讨论环节,相信能进一步提升学习效果。未来,我会继续加强对薄弱知识点的学习和实践,将所学知识运用到更多实际项目中,不断提升自己的编程水平。

  • PTA作业
    作业难度适中除了有几个题目之外其他的努努力力都可以完成,就比如说之前出的那个三次电梯迭代的作业。其他的花点时间和精力就可以写出来,还有那个航空货运系统也挺耗时间的。个人觉得PTA作业布置的还是挺不错的,题目量也适中,一个题目集三个题目,前两个题目更简单后面一个要多花点时间,难度层层递进。个人建议PTA作业不要和实验或者Blog作业一起吻上来,因为这样我就没办法专心写PTA作业了。

  • 实验
    做了五次实验我觉得吧实验提交系统需要实时改进一下啦,希望待我学成之后可以帮老师改进一下实验提交系统造福一下学弟学妹。然后这五次的实验内容层层递进都是在围绕着电器动物同时也贯穿了我们整个教学内容,挺好的。不过就是后面的实验老说在前一个实验的基础上我不太明白前一个实验的功能要不要继续保留

  • Blog作业
    Blog作业其实相当于是一个对自己阶段性学习的复盘,感觉不像是一个作业可能这就是老师布置Blog作业的初衷吧。让我们有一个复盘反思学习的思想,goodgood。

  • 学堂在线
    学堂在线占的分值很大啊,我这次学堂在线分值低全因我没看见讨论,导致线上课堂讨论没有进行而恰好讨论的分值占比有很高。小女子后悔莫及,悟已往之不谏,知来者之可追。我觉得学堂在线的进度可以和上课进度同步

  • 线上课堂
    觉得课堂上老师可以多讲讲案例实例分享,多讲讲知识点的运用,光听PPT上的知识不利于吸收理解与消化

posted @ 2025-06-18 12:35  彭清  阅读(20)  评论(0)    收藏  举报