面向对象OO课程学习总结

通过大约三个月的学习,总计一下这段时间以来学到的知识以及感想

这门课大约分为三个阶段,每三次大作业为一阶段,作业难度还行,质量很好。课堂上知识点大多在作业中体现,也有课堂上未涉及的知识点。此次课程主要还是体现在大作业上,完成一次大作业,往往需要各方面的知识做支撑,并不局限于课堂讲述的知识。难度较大的有:正则表达式的运用,这个点在好几次大作业中出现。下面主要从作业方面进行总结。

学到了什么?

通过这门课学到的知识还挺多,从刚开始的零基础到现在有一点基础,时间还是挺漫长的。还记得第一次听到面向对象程序设计,天真的以为对象就是对象,随着课程的深入,对它的理解也进一步加深,万物皆对象,对象皆有类。可以看出,我刚开始的理解并没有错误。

面向过程过渡到面向对象,从第一个java程序开始,

1
2
3
public class Helloworld{
              public static void main(String[] args){
              System.out.println("hello world");}}

到后面的class(类)和对象。对于面向对象的理解,面向对象和面向过程最大的区别就是前者对解决问题通过类+对象即方法+对象进行的,而后者则更多的强调函数的功能。两者都为高级语言,而编程思想和方法截然不同,各自有优缺点。通过作业逐步从面向过程过渡到面向对象的,在这个过程中,从刚开始在主方法里面编程,到建立多个类进行编程。可以说这段时间还是学到了不少东西。

哪些方面做得还不够?

所花时间精力不太合理,这门课程花的时间80%以上都在作业上面,所以说作业里面没涉及的知识点,基本上也就不熟悉。一道题,它的知识点有限,我觉得咱们学习面向对象编程,不能仅仅通过完成作业来学习,尽管作业方式是很不错的。作业都是发布在PTA上的,老师事先设置测试点,通过网页提交题目代码,在线测试。也可以说是无脑测试吧,有时候碰到一个测试点,改了半天都过不了,最后还是放弃了。也是由于这种考核机制,有时候只输出一个Wrong Format就能得50分。在一定程度上,减少了作业压力。

面向对象设计心得

对于面向对象三大技术特性之间关系的理解,首先三大技术特性分别为封装性、继承性和多态性,上面描述了我对这三个特性单独的理解,接下来我浅谈它们之间的关系,封装有set 方法来设置成员变量,用 get 方法来访问成员变量。把对象的成员变量隐藏在里面,不显示细节。保证数据的安全性。封装的好处在于,把一个功能装到一个方法中去,外界不必关注内部的细节。继承是类与类之间的关系,子类可以继承父类的方法,如果子类中调用的某个方法,会优先在子类中查找是否存在此方法,找不到的情况下,才到父类当中查找。子类重写父类中的方法,会覆盖父类的方法,优先使用子类方法。对于多态,我理解是在继承的条件下,才能有多态,多态指的是父类指针指向子类对象。

对这门课得理解

我理解的面向对象的封装性为隐藏对象的属性,对方法实现过程并不关注,对外仅提供接口,也就是说,我们只关注这个类的功能有哪些,并不关注这些功能是如何实现的。这点在作业过程中有明显的感受,比如在主方法中,我们只关注对象,对于对象的一些属性不去关注,就好比一只兔子,它有四条腿,能吃萝卜等,兔子就是我们封装的类。继承性,就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。这点在图形继承里面体现的淋漓尽致,子类圆 、三角形等继承父类图形(Shape),可以继承方法,属性。子类中也能自定父类中没有的方法。而多态性呢,它可分为静态多态性和动态多态性,也就是编译时的多态性和运行时的多态性。通俗点为,向不同对象发送相同指令,不同的对象在接收后会产生不同的行为。它增加了程序的灵活性,和可拓展性。

通过这门课,我学到了,学好一门语言,最好的方法就是多刷题,多看源码,多问。确实多问是一种好习惯,能让我们在学习路上少走弯路。

原文地址:https://www.cnblogs.com/Chen1101/p/13061860.html