《Java 面向对象程序设计》课程学习总结
一.前言
这学期的 Java 面向对象程序设计课程是一段充满挑战与收获的学习之旅。课程内容丰富多样,涵盖了线上课程、线下课堂、实验环节、PTA 编程作业以及 Blog 总结等多种学习形式,它们相互配合,共同构建了一个完整的知识体系。
1.线上课程
工作量:需系统观看视频每周约3-4小时,前期内容较易消化,后期复杂章节需反复观看。
难度:基础概念度较低,抽象类、接口等进阶内容需结合案例理解,难度中等。
2.线下课程
工作量:课堂需专注,课后需结合讲义复习,翻转课堂增加互动性。
难度:多态、异常处理等抽象概念讲解深入,需及时跟进思考,难度高。
3.实验环节
工作量:每两周1次实验,每次耗时4小时,需将理论转化为代码实践,后期实验耗时更长,特别是打代码。
难度:前期实验(如类的创建)难度低,后期实验需整合多知识点,难度高。
4.PTA编程作业
工作量:每周1次作业,每次3题,前二题目耗时1-2小时,最后一题需3-5小时。
难度:题型从基础语法到复杂算法,JavaFX界面编程题需兼顾逻辑与界面设计,难度高。
5.Blog作业
工作量:每1篇总结,耗时2-3小时,需梳理知识体系并结合实例分析。
难度:前期总结难度中,后期需深度思考,难度高。
二.java核心技术掌握总结
1.封装
学到的知识
深刻理解了封装的概念,即隐藏对象的内部状态,仅对外暴露必要的接口,这有助于提高代码的安全性和可维护性。知道了如何通过封装实现对数据的保护,避免外部直接操作数据而导致的错误。
认知
封装是面向对象编程的基础,它将数据和行为组合在一起,形成一个独立的单元,使得代码更加模块化,便于管理和维护。在实际开发中,合理的封装可以提高代码的复用性和可扩展性。
欠缺
在面对较为复杂的业务场景时,对于如何合理地设计封装的粒度还存在一定的困惑,有时候可能会出现封装过度或者封装不足的情况。
2.继承
学到的知识
掌握了继承的语法和机制,了解了子类如何继承父类的属性和方法,以及继承带来的代码复用的优势。同时,也知道了在继承中需要注意的问题,如构造方法的调用顺序等。
认知
继承是实现代码复用的重要手段,它允许我们在已有类的基础上创建新的类,减少了代码的重复编写。通过继承,能够建立类之间的层次关系,更好地反映现实世界中的事物之间的关系。
欠缺
对于继承中的一些高级特性,如多重继承的问题(Java 中通过接口实现类似功能),理解还不够深入。在设计复杂的继承体系时,可能会出现类之间的关系不够清晰的情况。
3.多态
学到的知识
理解了多态的概念和作用,多态使得程序在运行时能够根据对象的实际类型来调用相应的方法,提高了程序的灵活性和可扩展性。掌握了方法重写的条件和要求,以及对象转型的相关知识。
认知
多态是面向对象编程的核心特性之一,它使得代码更加灵活,能够适应不同的情况。通过多态,我们可以编写更加通用的代码,提高代码的复用性。在实际开发中,多态的应用非常广泛,例如在集合框架中经常会用到多态的特性。
欠缺
在实际应用中,对于多态的运用还不够熟练,有时候可能会出现转型错误等问题。对于多态背后的原理,如动态绑定机制,理解还不够透彻。
4.抽象类
学到的知识
了解了抽象类的概念和作用,抽象类不能直接实例化,只能作为父类被继承,它为子类提供了一个模板。掌握了抽象方法的定义和实现要求,子类必须实现父类的抽象方法。
认知
抽象类是一种特殊的类,它用于定义一组相关类的公共接口和部分实现,起到了规范和模板的作用。通过抽象类,可以将具有共同特征的类的共性提取出来,提高代码的抽象程度和可维护性。
欠缺
在实际项目中,如何合理地设计抽象类和抽象方法,以满足不同的业务需求,还需要更多的实践和经验积累。
5.接口
学到的知识
掌握了接口的定义和实现方法,接口是一种完全抽象的类型,它只定义方法的签名,而不提供方法的实现。实现接口的类必须实现接口中的所有方法。了解了接口在 Java 中实现类似多重继承功能的作用。
认知
接口是一种重要的编程结构,它定义了一组行为规范,实现接口的类必须遵守这些规范。接口使得不同的类可以具有相同的行为,提高了代码的通用性和可扩展性。在实际开发中,接口常用于定义各种服务和协议。
欠缺
对于接口的一些高级应用,如接口的默认方法和静态方法,理解和运用还不够熟练。在设计复杂的接口体系时,可能会出现接口之间的关系不够合理的情况。
6.集合框架
学到的知识
了解了集合框架的体系结构,掌握了常用集合类的特点和使用方法。学习了集合的迭代器遍历、增强 for 循环遍历等遍历方式,以及集合的排序、查找等操作。
认知
集合框架是 Java 中非常重要的一部分,它提供了丰富的集合类和接口,方便我们对数据进行存储和管理。不同的集合类具有不同的特点和适用场景,合理地选择集合类可以提高程序的性能和效率。
欠缺
对于集合框架的底层实现原理,如 ArrayList 的动态扩容机制、HashMap 的哈希算法等,理解还不够深入。在处理大规模数据时,如何优化集合的操作,提高程序的性能,还需要进一步学习和研究。
7.异常
学到的知识
掌握了异常的分类,如 Checked 异常和 Unchecked 异常,了解了异常的处理机制。学习了如何使用 try-catch-finally 语句来捕获和处理异常,以及如何抛出异常和自定义异常类。
认知
异常处理是程序设计中非常重要的一部分,它能够使程序在出现错误时不崩溃,而是进行相应的处理,提高了程序的稳定性和可靠性。通过合理的异常处理,可以让程序更加健壮,更好地应对各种意外情况。
欠缺
在实际开发中,如何合理地设计异常处理机制,如何区分不同类型的异常并进行恰当的处理,还需要更多的实践经验。对于一些复杂的异常情况,可能还不能很好地进行处理。
8.JavaFX
JavaFX 的学习是课程的后期内容,具有一定的挑战性。在实验和项目中,我尝试使用 JavaFX 进行图形界面的开发,能够创建基本的界面元素,如按钮、文本框、标签等,并且能够设置它们的属性和布局。能够实现一些简单的交互功能,如按钮的点击事件处理。在 PTA 作业中,对于 JavaFX 的题目,需要结合前面所学的知识进行综合运用,难度较大,完成起来有一定的困难。
学到的知识
了解了 JavaFX 的基本概念和架构,掌握了 JavaFX 界面元素的创建和布局方法,学习了事件处理机制和 FXML 文件的使用。能够使用 JavaFX 进行简单的图形界面开发。
认知
JavaFX 是一种强大的图形界面开发工具,它提供了丰富的界面元素和布局方式,能够创建出美观、交互友好的图形界面。通过 JavaFX,我们可以将程序的功能以更加直观的方式呈现给用户,提高用户体验。
欠缺
对于 JavaFX 的高级功能,如图形绘制、动画效果、数据绑定等,掌握得还不够熟练。在设计复杂的界面布局和实现复杂的交互功能时,还存在较大的困难。此外,对于 JavaFX 与其他技术的整合,如与数据库的交互,还需要进一步学习和实践。
三.采坑心得
1.接口和抽象类的使用场景混淆,不清楚何时该用接口、何时该用抽象类。
2.for或while循环条件设置不当,导致程序卡死。
3.声明集合时未指定泛型类型,导致运行时ClassCastException。
4.忽略了 Java 基础语法和面向对象的深入理解,导致后续学习困难。
四、课程感悟与建议
通过这门课程的学习,我系统地构建了 Java 面向对象编程的知识体系。从最基础的类与对象概念,到封装、继承、多态等核心特性,再到抽象类、接口、集合框架、异常处理以及 JavaFX 图形界面开发等内容,每一个知识点都环环相扣,逐步深入。这种循序渐进的课程安排,让我能够从浅入深地理解和掌握面向对象编程的精髓,为今后的软件开发学习和实践奠定了坚实的基础。
学习这门课程最大的收获之一是思维方式的转变。面向对象的思维方式让我学会了从对象的角度去思考问题,将复杂的现实问题分解为多个对象之间的交互。这种思维方式不仅适用于编程,也对我解决其他领域的问题产生了积极的影响。同时,在学习过程中,我养成了逻辑思维和批判性思维的习惯,能够更加严谨地分析问题,提出合理的解决方案。
建议实验不要一直使用大象和冰箱的迭代,出一些新的题,加入复制功能。
浙公网安备 33010602011771号