前言:一学期的学习已经结束,在本学期的学习中,我收获很多。总体上来看,本学期的课程难度对我来说稍微有一点难度,但不是无法解决的那种,就是工作量感觉大了一点,毕竟也有其它科目的作业,而且一周的课程也挺满的,中间几周基本是满课,只有晚上或周末有时间。实验的话那个实验系统真的感觉挺烦的,本身不算难,但手打有时候拼错或打成中文符号去找真的让人红温。线上课程的工作量不大但线上课程题目有点离谱了,顺序写错或没问题就是描述不同都算错真无语。
面向对象技术总结:
一、核心概念掌握情况
1. 封装
学习成果:通过 PTA 作业和实验,理解了封装的本质是将数据与操作数据的方法绑定,并通过访问修饰符(private、protected、public)控制外部访问。
认知提升:封装不仅是 “隐藏细节”,更是对类职责的明确划分。
欠缺之处:在复杂业务场景中,对封装粒度的把握不够精准(如过度封装导致代码冗余,或封装不足导致数据安全隐患),需要通过更多项目实践优化设计。
2. 继承
学习成果:掌握了通过extends关键字实现类的继承,理解了父类与子类之间的关系。
认知提升:继承是代码复用的重要手段,但需避免 “滥用继承”(如通过组合关系更合适的场景)。
欠缺之处:对 Java 单继承的限制理解不够深入,在需要多继承场景下(如同时继承多个功能),未熟练使用接口作为替代方案。
3. 多态
学习成果:掌握了多态的两种表现形式
方法重写(运行时多态):子类重写父类方法,通过父类引用调用时动态绑定子类实现。
方法重载(编译时多态):同一类中方法名相同、参数不同的重载。
认知提升:多态使代码具备 “可扩展性”,例如在设计图形渲染系统时,通过多态允许添加新形状类而不修改原有代码,符合开闭原则。
欠缺之处:在涉及类型转换和泛型多态的场景中,对类型安全的处理不够熟练。
4. 抽象类与接口
学习成果:
抽象类:通过实验理解了抽象类不能实例化,可包含抽象方法(由子类实现)和非抽象方法(提供默认实现)。
接口:掌握了通过implements实现多接口。
认知提升:抽象类适用于 “is-a” 关系且需要代码复用的场景,接口适用于 “can-do” 行为抽象。例如,“教师” 类继承 “人” 抽象类,同时实现 “授课接口”“科研接口”。
欠缺之处:对接口默认方法的设计原则理解不足,在接口升级时可能导致兼容性问题(如新增默认方法对已有实现类的影响)。
5. 集合框架
学习成果:
常用容器:通过实验掌握了ArrayList(动态数组)的使用场景。
泛型:理解了泛型类型参数的作用,避免类型转换异常,提高代码安全性。
认知提升:集合框架的设计体现了接口与实现分离的思想(如List接口与ArrayList实现类),便于根据需求切换不同实现。
欠缺之处:对并发集合和队列的高级用法掌握不足,未在实验中深入实践。
6. 异常处理
学习成果:
异常分类:区分了 checked 异常和 unchecked 异常,通过try-catch-finally处理异常。例如,文件读取作业中使用try-catch捕获FileNotFoundException。
自定义异常:在实验中创建了InvalidInputException自定义异常,用于业务逻辑中的参数校验。
认知提升:异常处理不应仅用于 “错误捕获”,更应作为程序流程控制的一部分(如通过异常终止非法操作)。
欠缺之处:对异常链和异常日志记录的实践较少,代码中异常处理逻辑较为简单。
7. JavaFX(图形界面开发)
学习成果:
基础控件:通过实验实现了简单计算器界面,使用Button、TextField、GridPane等控件,掌握了布局管理和事件处理。
认知提升:JavaFX提供了更现代的 UI 设计方案,支持 CSS 样式和动画效果,适合中小型桌面应用开发。
欠缺之处:对 JavaFX 的高级特性理解不深,未实现复杂界面交互(如表格视图、图表绘制)。
不足:我主要是对于集合框架部分的学习上有所欠缺吧,主要是在这个部分课堂上没认真听,理解不深刻,对于它的运用也不熟练,之后还是要好好的复习回顾一下,加强一下对它的认识理解。
踩坑心得:(1)写代码之前一定要有自己的逻辑思路,理清楚类与类之间的关系,各个类的作用是什么,不然学到一半发现无法进行下一步直接老实。
(2)一定要处理多余的换行符,要不然输入对应不上还要回头去找哪里出了问题。
(3)异常机制真的十分重要,不要等程序因输入非法数据崩溃,才意识到异常处理的重要性。
改进建议及总结:
首先就是实验指导书写得真有点混乱了,要求不明确。还有那个实验系统,不能复制粘贴真是有点问题吧,它的功能太少了,在IDEA上要用哪个方法打前几个单词就行,拼写错误还能直观地给我指出来,这实验系统打代码打快了在一堆代码里找哪一个两个字母的问题是真的折磨,真的会把眼睛都找花。
javafx的作业的话说实话基本还是自己在网上自己学,翻转课堂的效果对我基本感觉不大,当然,也可能是我自己的原因。总之javafx内容这么多,让学生一点一点在讲台上自己讲我认为还是很难讲清楚的。
其它的话我也提不出什么意见了,总体上该课程的设计和框架还是不错的,也教给了我许多新知识,希望我自己也能在代码方面能力越来越强吧。
浙公网安备 33010602011771号