第三次博客作业-课程总结
面向对象程序设计课程总结
前言
首先对于我来说,这门课程还是比较有挑战性的,首先这门课在时间上是比较紧凑的,每个星期都会有对应的作业和新的知识点要学习。PTA作业的量不是很多,
都是联系到正在学的知识点,要把学习到的知识灵活运用才能做出,难度适中,但如果你要等着截止日期最后前两天才开始写的话,那你多半是写不完要遭殃了。而
且我认为这是一个很好的方式来巩固新学的知识点,毕竟纸上学来终觉浅,还是要实操一下。
实验方面:实验上布置的作业是一个迭代的过程,是一个循序渐进的过程,也是一步一步将新学的知识点加入其中,从面向对象编程到继承与多态再到抽象类与接口,
随着需求的不断改变,对已写的代码进行迭代扩展,这也是一个锻炼你代码遵守单一职责原则,开闭原则等的好机会,毕竟你的代码如果写的太差没法扩展的话就得重新
写。
课程方面:课程上分为线上线下课程联动式,线上课程给线下课程打好基础,也有一些知识点的补充,线上课程的话时间上还是很好的,一节课时间不长,而线下课程
则是把线上的课程讲的更细并进行扩展延伸,二者缺一不可,光听线上课的话知识点不够细,光听线下课的话没有线上课的基础听起来会有点懵,必须一起听才能使学习
高效。
Blog作业的话,我认为是一个很好的阶段性回顾与总结的机会,能让你回顾你学到了什么,在哪里踩了坑有哪些不足,并需要如何改进,为接下来的怎样更高效的学习
点明方向
面向对象技术总结
通过这门课程的学习,让我对写代码的认知又加深了几分,一开始简单认为只要能运行即可,到后面的要进行维护或要进行扩展等等,发现写代码远远不止如此,对这么课
程所讲的知识点也更加的了解。
封装
-
认知:将数据(属性)和操作数据的方法(行为)封装在类中,通过访问修饰符(private/protected/public)控制外部访问,隐藏内部实现细节。
-
作用:数据保护:通过private修饰属性,防止外部非法修改,保证数据安全性。简化接口:外部只需通过类提供的方法操作数据,无需关心内部实现细节
(如属性存储方式、计算逻辑)。代码复用与维护:封装后的类可独立修改内部逻辑,只要接口(方法签名)不变,外部调用不受影响。
就比如一些类的使用者不需要知道类是如何实现的,就可以通过封装对用户隐藏起来
继承
-
认知:继承是子类(派生类)获取父类(基类)的属性和方法,并可扩展新功能或重写父类方法的机制。Java 中通过extends关键字实现,且只支持单继承。
-
作用:代码复用:子类无需重复实现父类已有的功能(如Person中的getName方法可直接被Student使用)。建立类的层次关系:通过继承形成 “is-a” 关系(如 “学生是一个人”),
使代码结构更清晰。
继承通过继承父类的方法,可以重写父类的方法或写新的方法,如水果店要卖水果,而水果有很多种,如果每次添加新的水果或删除过季的水果都要在总体代码上进行
改进,就太麻烦了,而通过继承,我们可以写一个水果的父类,新的水果通过继承父类来实现的话,就大大减轻了工作量并不会对原来已经写好的代码进行过多不必要的
改进
多态
-
认知:多态指同一个方法调用在不同的对象上会产生不同的行为,分为编译时多态(方法重载,Overload)和运行时多态(方法重写,Override)。
方法重载:同一类中多个方法名相同,但参数列表(类型、顺序、数量)不同,编译时根据参数匹配方法。
方法重写:子类重新实现父类的方法(方法名、参数、返回值完全一致),运行时根据对象实际类型调用对应方法。 -
作用:灵活性与扩展性:代码可通过父类引用处理不同子类对象,无需为每个子类单独编写逻辑(如上述例子中用Animal引用调用Dog的方法)。
接口统一:多态使不同类对象可通过相同接口交互,降低代码耦合度(如集合框架中List接口可存储所有实现类对象)。多态通过同一个方法调用在不同的对象会产生不同的行为配合继承,例如图形这个父类里有求面积这个抽象方法,而其的子类有圆形和长方形,
那么我们调用这个求面积方法的话不同的子类对象则会进行自己的对应求面积的公式
抽象类
-
认知:抽象类是使用abstract关键字修饰的类,它不能直接实例化,只能被继承。抽象类中可包含抽象方法(仅有声明,没有实现,需用abstract修饰)
和普通方法。 -
作用:规范子类行为:抽象类定义了子类必须实现的方法(如getArea),确保子类遵循统一的接口规范。代码复用与扩展:抽象类中可包含通用逻辑(如display方法),
子类继承后直接使用或扩展。
要注意的是抽象类并不能实例化对象,而且父类写的抽象方法子类都必须实现,不过还可以进行上转型和下转型等操作
接口
-
认知:接口是使用interface关键字定义的抽象类型,其中所有方法默认是public abstract(可省略修饰符),所有属性默认是public static final。
接口支持多实现(一个类可实现多个接口)。 -
作用:解耦与模块化:接口定义 “能做什么”,而不关心 “如何做”,实现类可独立开发,多实现机制:弥补 Java 单继承的限制,使类可同时具备多种行为
集合框架
-
认知:Java 集合框架是一组用于存储和操作数据的接口、实现类和工具类,位于java.util包中。核心接口包括:
Collection:单列集合顶层接口,分为List(有序、可重复)和Set(无序、不可重复)。
Map:双列集合,存储键值对(Key-Value)。 -
作用:高效数据存储:根据不同需求选择合适的集合(如需要有序用TreeSet,需要快速查询用HashMap)
异常
-
认知:异常是程序运行时出现的错误事件,Java 通过异常类体系(Throwable为顶层父类)和try-catch-finally机制处理异常。
-
作用:程序健壮性:通过捕获异常并处理,防止程序因意外错误崩溃(如文件不存在时给出提示而非直接终止)。
我们代码运行时遇到的问题有可预测的也有不可预测的,而对于这类不可预测的问题,我们就可以通过异常来解决不可预测的方法
来保证代码的健壮性
JavaFX
-
认知:JavaFX 是 Java 平台的图形用户界面(GUI)框架,用于构建跨平台的富客户端应用,支持 2D/3D 图形、动画、多媒体等功能,
替代了传统的 Swing 框架。 -
作用:现代 UI 开发:提供更美观的界面组件和动画效果(如按钮悬停效果、平滑过渡动画
经过学习,可以通过JavaFx来做一些简单的界面并实现一些基础的界面交互
欠缺
经过这段时间的学习我发现我在集合框架、异常、和JavaFx方面还是不是很了解,不能灵活的进行运用,还需在后面不断努力,并在代码类设计
上还是不是很完美,有些功能代码的所处的类不是很合理,而且在结构上还是有点欠缺,并应该更联系实际并拥抱变化。
踩坑心得
- 写题目理解题目意思很重要 不要一拿到题目就开始写你的代码,你以为你写的很多很努力,但如果思路不对都是无用功,还要重头来过,所以不如认真
理解题目的意思,做好类设计再开始写,这样在有了框架的基础上写,就会有思路轻松不少 - 题目意思理解要完整 要确保在第一次写的时候就尽可能写的完整,免的后面一两个测试点过不了找的头大都没有任何办法,只能像无头苍蝇一样到处找,
最后懂得找到的救赎感 - 早学会调试早享福 调试真的真的很重要,用过的都说好,它是一个很好的方式在你的代码出现逻辑错误或者非零返回时确定错误代码的方式,避免自己一段一段
找。 - 多和同学沟通 有时候你认为的难点你认为的坑可能你的同学都踩过,并且解决了,可能只要寥寥数语就可以解决你的困惑哦,当然有时候你肯定也可以帮到
同学的忙,这样相互交流沟通经验可以提高做题速度和学习效率。 - 非常重要的一点,要勤奋哦 老师布置作业的时间有老师的道理,所以尽量做的早一点,避免被催着走,我认为这时候再做的话反而像应付一样做题速度反而不高,
并可能因做的太赶而卡住。
改进建议和总结
总结
总体来说这门课收获颇丰,在我面前打开了面向对象的大门,这门课的内容和作业等安排让我学得十分的充实,就是在JavaFx方面和集合框架方面还不是很了解,
还需不断学习。
改进建议
希望在实验提示错误时能更显眼一点,它会提示在那行,但代码一长找起来就非常麻烦,希望能提示的更加明显一点。

浙公网安备 33010602011771号