课程总结性blog

一、前言:作业总结
Blog作业:工作量较大,难度始终,适合对各个阶段的学习进行总结创作。
Pta作业:作业难度循序渐进,适合学生进行初步的学习以及进阶,课程初期较为简单,适合我们入门,后期难度提高,适合我们进行进阶操作。
实验:实验较为简单,主要是让我们了解java中的各个工具的用法,或者说是帮助对刚学的知识进行熟悉。
线上课程:主要用于预习,工作量适中。
线下课程:工作量较少,难度适中。


二、面向对象技术总结:认知与成长
Blog 作业:
Blog 作业更像是对知识的梳理和复盘,每次写完都能让我对某个知识点的理解更清晰。比如在写封装的 Blog 时,我需要把课本上的概念用自己的话讲清楚,还要举例子,这让我意识到封装不仅仅是用private修饰属性,更重要的是通过方法控制数据的访问,比如在设计学生类时,用setAge()方法添加年龄合法性检查。不过有时候会觉得自己的例子不够生动,对一些底层原理(比如封装如何提高代码安全性)的理解还停留在表面,需要多结合实际项目思考。
PTA 作业:
PTA 作业的难度确实是循序渐进的,很适合打基础。
封装阶段:初期作业就是设计一个简单的类,比如 “Person” 类,定义属性和 getter/setter 方法,当时觉得很简单,只要记住用private就行。但后来遇到需要组合其他类的题目,比如 “Student” 类里包含 “Address” 类的对象,才发现封装不仅是修饰属性,还要考虑类之间的依赖关系,自己一开始经常把属性直接暴露出来,导致代码不够规范。
继承与多态:中期开始接触继承,比如写 “Animal” 父类和 “Dog”“Cat” 子类,重写toString()和eat()方法。PTA 里有一题让我印象很深:用父类Animal的引用指向子类对象,调用方法时要体现多态性。当时我搞不懂为什么同样的方法名会执行不同的操作,后来通过单步调试才明白 “动态绑定” 的原理,但在后期复杂的多态应用(比如接口回调)中,还是会偶尔混淆父类和子类的方法调用逻辑。
抽象类与接口:这部分作业难度提升了,比如设计一个 “Shape” 抽象类,包含getArea()抽象方法,再让 “Circle”“Rectangle” 实现它。接口的作业则需要同时实现多个接口,比如 “Flyable” 和 “Swimmable”,当时经常搞混抽象类和接口的区别(抽象类可以有非抽象方法,接口全是抽象方法),写作业时还因为忘记在接口实现类中重写所有方法而报错。
集合框架:PTA 里关于集合的作业很实用,比如用ArrayList存储学生对象。初期用ArrayList的增删改查很顺利,但学到泛型时有点懵,比如为什么要写,不写会有什么问题,后来通过作业中的错误提示(比如类型转换异常)才慢慢理解泛型的作用。不过对于LinkedList和ArrayList的底层区别,以及HashMap的哈希冲突处理,作业里涉及较少,自己理解得不够深入。
JavaFX:javafx目前做的习题较少,而且我觉得学习不够全面,目前个人觉得还需要更加深入或者说系统性的学习。
线上课程:
线上课程我一般用来预习,比如在学多态之前,先看慕课网上的视频,了解 “向上转型” 和 “动态绑定” 的概念,这样上课的时候能跟上老师的思路。但线上课程的例子比较基础,比如用 “Animal” 和 “Dog” 讲多态,到了实际作业中遇到更复杂的场景(比如接口作为参数传递),还是会觉得吃力。
线下课程:
线下课老师会结合案例讲原理,更容易理解。但线下课时间有限,老师只能讲重点。
整体总结:
掌握较好的部分:封装、继承、多态、抽象类、接口。
需要加强的部分:集合框架、异常以及JavaFX等相关内容。


三、采坑心得:从挫折中成长
在学习面向对象技术的过程中,我踩过不少弯路,也从中学到了很多经验教训。刚开始接触封装时,我误以为只要用private修饰属性就算完成了封装,结果在写 PTA 作业时,因为没有在 setter 方法里添加参数校验,导致对象属性被错误赋值,程序出现逻辑漏洞。后来才明白,封装的核心是通过方法控制数据访问,而不是简单的语法修饰,这让我意识到理解概念本质的重要性。

在学习继承和多态时,我经常混淆父类与子类的方法调用逻辑。有一次写动物类继承体系,我在子类中重写了父类方法,却忽略了方法的访问权限需要大于等于父类,结果程序编译报错。还有在使用多态时,我误以为父类引用只能调用父类定义的方法,直到通过调试才明白动态绑定的原理,这让我懂得了必须通过实践来理解抽象概念。

学习 JavaFX 时,布局问题让我吃了大亏。一开始我只会用简单的 VBox 和 HBox,结果界面元素排列混乱,按钮位置怎么调都不对。我还懒得去查文档学习 AnchorPane 等复杂布局容器,导致作业界面效果很差。这让我意识到,遇到困难不能逃避,主动学习工具的使用方法才是解决问题的关键。

另外,在集合框架的学习中,我曾因为不了解 ArrayList 和 LinkedList 的底层区别,在需要频繁删除元素的场景中误用了 ArrayList,导致程序效率低下。这让我明白,仅仅掌握集合的基本用法远远不够,了解其底层原理才能在实际应用中做出正确选择。

总的来说,这些 “坑” 让我深刻认识到,学习编程不能只停留在表面语法,要深入理解概念原理,遇到问题多动手调试,主动查阅文档拓展知识,这样才能真正掌握技术,避免重复踩坑。


四、改进建议与课程总评
课程综合性总结
学习面向对象技术这门课程后,我系统掌握了封装、继承、多态等核心概念,通过 PTA 作业和实验操作,对抽象类、接口、集合框架等内容有了实践体会,JavaFX 的初步应用也让我对 GUI 开发有了认知。课程内容循序渐进,从基础语法到复杂应用逐步深入,线上线下结合的教学方式帮助我从不同角度理解知识。但在学习中也发现,自己对部分技术的底层原理理解不够深入,如集合框架的实现机制、JavaFX 的高级布局等,实际应用能力还有提升空间。
改进建议及意见
对教师的建议
教师授课时可以增加更多实际项目案例,将抽象的面向对象概念与具体场景结合,比如用电商系统讲解类的设计与继承关系,帮助学生更好地理解知识点的应用场景。同时,在讲解技术难点时,可适当放慢节奏,给学生更多消化吸收的时间,并且增加课堂互动环节,鼓励学生提问和分享学习心得。
对课程内容的建议
课程内容可以适当拓展一些前沿技术或实际开发中常用的技巧,比如在讲解集合框架时,加入并发集合的相关内容;在 JavaFX 部分,增加动画效果、自定义控件等进阶知识的讲解,让课程内容更贴近实际开发需求。此外,可对抽象类与接口的应用场景进行更深入的对比分析,帮助学生理清两者的区别与联系。
对作业与实验的建议
PTA 作业可以在现有基础上,增加一些综合性强的题目,让学生将多个知识点结合起来解决问题,提高综合应用能力。实验内容可设计得更具挑战性,比如增加自定义异常、复杂 JavaFX 界面设计等实验,引导学生主动探索和学习。同时,希望实验和作业能提供更多的错误示例和解决方案,帮助学生在遇到问题时更好地排查和解决。
对课上及课下组织方式的建议
课上可以采用小组讨论的方式,让学生针对某个面向对象的设计问题进行交流和探讨,培养团队协作和思维能力。课下可以建立学习群,教师定期在群中发布拓展学习资料、解答学生疑问,促进学生的自主学习和交流。此外,可安排一些阶段性的小项目,让学生将所学知识应用到实际项目开发中,增强实践能力和对知识的掌握程度。

posted @ 2025-06-18 18:35  kiroty  阅读(17)  评论(0)    收藏  举报