面向对象程序设计课程总结性Blog

一、前言:课程概要性总结

  在这门课程的学习过程中,包括了 Blog 作业、PTA 作业、实验、线上课程以及线下课程等多种学习方式,每种方式都对我有巨大帮助,帮助我理解与掌握Java 面向对象编程。其中Blog作业帮我对PTA作业中的电梯调度问题和航空货运管理系统有了更加深入的理解,在总结过程中我对题目有了更加深刻的理解,也更加明白我写代码时的不足,为我未来的学习提供了巨大帮助。PTA作业则大幅提升了我写代码的能力,其中的作业有较难的作业,也有相对简单的作业,从简单入手极大的提升了我的能力。实验难度适中,每次的实验报告让我能对自己的代码有更深入的理解,清楚找到自己代码的不足之处。线上课程让我可以在课后进行学习,线课程清晰的讲解了各个知识点。总体工作量适中,难度也适中。

 

(一)Blog 作业

  其工作量适中。Blog 作业让我学会了分析自己的代码,通过类图等方法清楚的分析代码。踩坑心得也让我不断进步,减少了写代码时犯错的可能。改进建议则让我在未来写代码时写出更加优秀的代码。通过写 Blog,我学会对所学知识进行梳理,将知识点系统化,用自己的语言表达出来,这有助于加深对知识的理解,还锻炼了我的文字表达和逻辑思维能力。

(二)PTA 作业

  PTA 作业的难度梯度明显,前期题目注重基础知识的巩固,后期题目越来越强调对综合知识的运用和对问题的深入分析。比如,在电梯调度题目中,不仅要求我们熟练使用相关的类和方法,还需要考虑程序的逻辑,对问题深入分析,对我们的编程能力和理解能力提出了较高要求。PTA 作业检验了我们对知识掌握程度和编程实践能力,其题量较大,涵盖了课程各个阶段的各个知识点。从基础的语法应用到复杂的面向对象程序设计,每一道题目都需要我们运用所学知识进行分析和解决。

(三)实验

  实验循序渐进,大部分实验都围绕动物进入电器展开,在逐步完成多个实验后,我的代码越来越完整。实验的难度逐步增大。在用户图形界面实验中,我们需要综合运用之前实验中的代码和JavaFX,对我来说具有一定的挑战性。

(四)线上课程与线下课程

  线上课程可以让我在课后学习,我可以根据自己的学习情况随时进行复习。课程内容丰富,有助于我深入理解知识点。线下课程则提供了与老师和我面对面交流的机会,老师通过现场讲解、代码演示等,能够及时解决我的困惑,同时还引导我进行深入思考。线上线下课程循序渐进地引导我掌握面向对象编程技术。

 

二、面向对象技术总结

(一)封装

  在 PTA 作业和实验中,封装得到了大量应用,在每次PTA作业和实验中都需要运用到封装。通过将类的属性私有化,并提供公共的访问方法,我们能够有效地实现对数据的保护和控制。在实际编程,我学会了合理设计类的属性和方法,确保数据的安全性。例如在实验中,在设计一个动物类时,将动物的名字、体重和攻击力属性设置为私有,通过公共的 get 和 set 方法进行访问和修改,这样可以在 set 方法中添加数据验证逻辑,避免不合理的数据被写入。对于封装的认知,我理解到它不仅是一种数据保护机制,更是一种提高代码可维护性和可复用性的重要手段。

(二)继承

  继承是面向对象编程的重要特性之一,通过 PTA 作业和实验,我深入理解了继承的概念和应用场景。继承允许子类继承父类的属性和方法,从而实现代码的复用和扩展。在实际编程中,我学会了如何设计合理的继承层次结构,例如在实验中,设计一个动物类作为父类,包含通用的属性和方法,然后通过继承创建elephant大象类、tiger老虎类和lion狮子类,子类可以根据自身特点重写父类的方法或添加特有的属性和方法。对于继承的认知,我认识到它能够有效地减少代码冗余,提高开发效率。

(三)多态

  多态是面向对象编程重要的特性之一,在多个题目中都有体现。通过方法重载和方法重写,实现了不同对象对同一消息做出不同响应的效果。在实验中,经常会遇到需要运用多态来解决问题,例如,在设计一个动物类及其子类时,每个子类都要重写父类的叫声方法,在程序中通过父类引用调用叫声方法时,会根据实际的对象类型调用相应子类的方法,比如大象的"咆哮一声",老虎的"嗷嗷一声"和狮子的"怒吼一声"。对于多态的认知,我理解到它使得程序具有更好的可扩展性和可维护性,能够适应不同的需求变化。

(四)抽象类

  抽象类在课程中主要用于定义一些具有共性的抽象概念和行为,通过 PTA 作业和实验,我掌握了抽象类的定义和使用方法。需要注意的是抽象类不能被实例化,它可以包含抽象方法和具体方法也可以不包含抽象方法,子类必须实现抽象类中的抽象方法。在实际编程中,当我需要定义一些具有相似特征但具体实现不同的类时,可以使用抽象类作为父类。例如在实验中,设计一个动物抽象类,包含抽象的voice()方法,然后创建大象类、狮子类等,分别实现voice()法来返回不同叫声。对于抽象类的认知,我认识到它能够有效地规范子类的行为,提高代码的规范性和可维护性。

(五)接口

  接口在 Java 编程中具有重要的地位,它提供了一种实现多继承的方式。在 PTA 作业和实验中,我学会了如何定义接口以及类如何实现接口。接口中只包含常量和抽象方法,实现接口的类必须实现接口中的所有抽象方法。例如实验中,在设计动物类时,可以定义攻击力接口,包含返回攻击力方法,然后创建子类实现该接口。对于接口的认知,我理解到它能够提高代码的灵活性和可扩展性,使得不同的类可以实现相同的功能,便于系统的集成和维护。

(六)集合框架

  在 PTA 作业和实验中频繁使用。我掌握了 List等常用集合接口及其实现类的特点和使用方法,例如,ArrayList 和 LinkedList 的区别等。在实际编程中,能够根据具体的需求选择合适的集合类来存储和操作数据,提高程序的效率和性能。

(七)异常

异常处理是保证程序健壮性的重要手段,在课程学习中,我学习了 Java 中的异常体系以及如何捕获和处理异常。对于异常的认知,我理解到合理的异常处理能够使程序在出现错误时优雅地处理问题。

(八)JavaFX

  JavaFX 是用于创建富客户端应用程序的框架,在实验课程中,我们对 JavaFX 进行了学习和实践。我掌握了 JavaFX 的基本布局管理、控件使用和事件处理等知识,能够设计出简单的图形用户界面。例如在实验中使用 JavaFX 模拟动物进入电器,包含文本框、按钮等控件。对于 JavaFX 的认知,我认识到它为 Java 应用程序提供了强大的界面设计能力,能够提高用户体验。

 

  总结:我在异常处理和JavaFX方面还存在欠缺,对它们的使用还不够熟练,对它们还不够熟悉,需要在后续的学习和实践中不断加强和完善。

 

三、采坑心得

  在课程的学习过程中,我遇到过许多问题和困难,也从中吸取了许多经验教训。

 

(一)对基础知识理解不深入导致的问题

  在课程初期,由于对 Java 的基础语法和面向对象的基本概念理解不够深入,在 PTA 作业和实验中经常出现语法错误和逻辑错误。例如,对知识点掌握不扎实,导致程序没有写get和set方法,却直接改动数据。没有实现父类中的抽象方法导致报错。在解决这些问题的过程中,我认识到扎实的基础知识是进行复杂编程的前提,只有深入理解每一个概念和语法规则,才能避免低级错误的发生。因此,在后续的学习中,我更加注重对基础知识的复习和巩固,通过查阅资料等方式,确保对每一个知识点都理解透彻。

(二)代码调试能力不足的困扰

  在编程过程中,遇到程序运行错误时,由于缺乏有效的调试方法和经验,往往花费大量时间却难以找到问题所在。例如,在调试电梯调度程序时,由于测试用例较少,不知道哪里有错误,不能合理的想出更多的测试用例来找出错误。通过学习和实践,我逐渐掌握了一些调试技巧,如使用断点调试、输出中间变量值等方法,能够更快速地定位问题。同时,我也认识到在编写代码时,要养成良好的注释习惯,便于自己和他人理解代码逻辑,也有助于在调试时快速找到问题线索。

(三)对新技术学习方法不当的问题

  在学习 JavaFX 等相对较新的技术时,由于没有找到合适的学习方法,导致学习效率低下,连简单的方法都不能很好的应用。开始时,我只是盲目地阅读文档和教程,缺乏实践操作,结果对知识点不能理解,无法应用所学知识。后来,我改变了学习方法,通过一些简单的示例程序进行记忆和理解,在实践过程中遇到问题再查阅资料进行解决,这样提高了学习效率,还加深了对知识的理解和掌握。

 

  通过这些踩坑,我认识到在编程学习过程中,要注重基础知识的学习,提高代码调试能力,掌握正确的学习方法,才能不断提高自己的编程水平。

 

四、改进建议及总结

(一)课程综合性总结

  通过这门课程的学习,我掌握了 Java 面向对象编程的核心技术。课程的教学内容丰富,涵盖了面向对象编程的各个方面,通过 Blog 作业、PTA 作业、实验等多种形式,有效地促进了我对知识的理解和掌握,也知道了自己的不足之处。

(二)对教师的建议

  1. 希望老师能够增加一些实际项目案例的讲解,通过实际项目帮助我们更好地理解面向对象编程技术在实际开发中的应用,提高我们的实际项目开发能力。
  2. 加强对学生学习过程的关注,定期了解学生的学习情况和遇到的问题,及时给予指导和帮助。可以通过增加课后答疑时间等方式,加强与学生的沟通和交流。

(三)对课程的建议

  1. 对于一些难度较大的题目,可以增加教学时间,确保学生能够理解和掌握。比如对电梯题目进行讲解。
posted @ 2025-06-22 16:09  3770351  阅读(24)  评论(0)    收藏  举报