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

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

一、前言

经过一学期的学习,这门课程的学习即将结束,体会和收获颇丰,现从以下几个方面对该门课程进行概要性总结。

(1)Blog作业:该门课程总共有3次Blog作业,第一次作业总结封装特性及编程思维的培养,第二次作业总结继承与多态知识点,而本次是对整门课程的总结。及时的Blog作业总结能够更好的巩固知识点。

(2)PTA作业:PTA作业紧跟讲的知识点,有易也有难,布置的作业极大程度上提升了我的编程能力。

(3)实验:前4次实验都较为简单,除了第五次需要上网查资料解决较为困难外。而且实验的关联度高,一直在扩展需求,提高我们对编程设计的理解。

(4)线上课程:个人认为,线上课程只是辅助教学的工具。

(5)线下课程:课程有一定的难度和工作量,但是老师讲的好,不是死板的教学,能够举例说明,让人豁然开朗。

二、面向对象技术总结

1、封装、继承与多态

(1)封装、继承与多态是面向对象的三大特性。

(2)封装是实现继承与多态的基础。我们将一行行代码封装在类中,方法中,能够提高代码的复用率。比如第一次电梯作业就大量使用了打印,我们就可以把打印封装在一个方法中调用,提高代码的复用率,降低代码的冗杂程度。

(3)继承是实现多态的前提。继承是一种代码的复用方式,就是”白箱“复用,继承复用最好能够遵循里氏代换原则。总的来说,继承提高了代码的复用性,提高软件的开发效率。

(4)多态的使用需要存在继承或者实现关系,由父类引用指向子类对象或父接口引用指向子实现类对象。多态的出现使编码更加灵活和便捷。

2、抽象类与接口

(1)对于继承体系中,出现类间的方法功能声明相同,但方法功能主体不同,此时可以定义抽象方法,只抽取方法声明,不抽取方法主体。而抽象方法存在于抽象类中,二者都被abstract关键字修饰。

(2)由于Java中只有单继承,接口就出现弥补Java中单继承的不足。接口中的方法大多是抽象方法,需要子实现类实现。

3、集合框架

(1)集合框架分Collection和Map两大体系。

(2)本门课程重点学习的是Collection类中List体系的ArrayList和LinkedList俩大类,并会进行队列的增删改查操作。

(3)还重点学习了使用Collections工具类进行排序,有自然排序(实现Comparable接口)和比较器排序(实现Comparator接口)。

4、异常

本部分内容为自学内容,主要分为编译时异常和运行时异常,其中编译时异常在编写代码时就必须处理。目前只会使用try-catch去处理异常。

5、javaFX

JavaFX 是 Java 平台的图形用户界面(GUI)框架,用于构建跨平台的富客户端应用,支持 2D/3D 图形、动画、多媒体等功能,可以通过JavaFx来做一些简单的界面并实现一些基础的界面交互。个人对本部分内容掌握程度不高,另一方面,在当前的主流业务开发中,不会使用这么粗糙的框架开发,所以了解为主就可以了。

6、设计原则

(1)单一职责原则

​ SRP

​ 可变封装

​ 将可能变化的封装成一个类

​ 高内聚 低耦合

(2)开闭原则

​ OCP

​ 对扩展开放 对修改关闭

​ 关键:抽象化

​ 对可变性封装原则

(3)里氏代换原则

​ LSP

​ 如果使用父类对象,则子类对象也可用

​ 尽量使用父类类型来对对象进行定义(多态)

​ 父类的方法,子类都需要有

(4)依赖倒转原则

​ DIP

​ 依赖抽象类与接口

​ 针对接口编程,不针对实现编程

​ 关键:以抽象方式耦合

(5)合成复用原则

​ CRP

​ 尽量使用组合/聚合关系,少用继承

​ “黑箱”复用

(6)接口隔离原则

ISP

不依赖不需要的接口

接口不应太大,拆分接口需满足单一职责原则

用多个专门的接口,而不使用单一的总接口

(7)迪米特法则

LoD

最少知识原则

a.不要和“陌生人”说话

b.只与你的直接朋友通信

c.最少支持原则

·一个软件实体应当尽可能少的与其他实体发生相互作用

优缺点:降低类间的耦合,造成系统的不同模块间的通信效率降低

三、踩坑心得

(1)一昧的学习理论知识,而没有实践。这门课程更注重的是实践,既要学习理论知识,更为重要的是上手敲代码。

(2)编码前一定要看清楚需求。我有好几次都没看清楚需求,把简单的问题复杂化,看清楚需求后就一目了然了。

(3)代码编写要规范。前期学这门课时,编写代码不写注释,变量名也随意起,导致自己都看不懂自己的代码,后期逐渐养成规范编写代码后,还能查看以前的代码复习知识点。

(4)要学会调试。不学会调试是很难解决运行时的偏差的,调试能很好的解决大部分代码逻辑错误。

(5)要学会和同学沟通。和同学沟通,能了解更多编码思维,也能更好地拓展自己的知识面。

四、改进建议及总结

1、总结:

整门课程偏向于程序设计,而不是编写程序。本门不是围绕单一语法知识讲解,也讲解了几个设计原则,并对其进行了深入讲解,甚至也扩展了设计模式,刷新了我对这门课的认知,也极大地让我理解市场的需求。特色的翻转课堂让我有展示自己的机会。老师通俗易懂的讲解使学生能对复杂难懂的知识豁然开朗。总之,学习了此门课程,我收获颇丰,不仅是对知识点的掌握更高,更是对心性的培养和对就业市场的认知加强。

2、建议:

a、建议老师删减线上课一些不常用知识点,并精讲常用的Java常用语法;

b、建议老师线下课可以讲一些编写代码的坑和陷阱,加强对知识点的掌握;

c、建议老师能按就业市场需求的方向讲,而不是依照死板的课程大纲,市场不用的淘汰的技术,即使在课程大纲内,也不要讲,增加学生学习负担。

posted @ 2025-06-19 00:45  庸人’梧执  阅读(17)  评论(0)    收藏  举报