前言:
面向对象,从C++开始,我们就开始接触,本篇博客来总结一下面向对象内容的基本内容,主要是一个宏观的总结,期中的每个知识点,都值得我们用心去总结,面向对象的知识很重要.C#,到现在学习java,我们都在逐步加深对面向对象的理解.
核心:
宏观导图:
这个思维导图我是看着软件设计师的第十章面向对象技术总结的,这里面不仅谈到了面向对象基础知识:封装/继承/多态,还讲解了UML图和设计模式,对于设计模式的理解,重点在于对面向对象基础的理解,加上类图(关系)+代码的对应,无论从代码还是从类图,都可以很好说出设计模式,真正掌握设计模式的,并不是记住具体哪个是哪个设计模式,遵循六大基本原则,就是设计模式的核心.关于设计模式还是要多多去用,运用六大基本原则构建自己的代码.
重点概括
这里我主要总结一下面向对象的基本知识:
基本定义
面向对象:不考虑步骤,不需要知道过程.
面向过程:实现的细节,以"我"为中心
内存理解
从代码上分析内存,无论何时,都是很重要,内存分析主要有四个:堆区,栈区,代码区,数据区.
关键字
构造函数
使用new+构造方法
创建一个新的对象
构造函数与类名同名且没有返回值
当没有构造函数时,自动系统默认:point(){},一旦定义之后,系统不再添加
构造方法没有返回值
this关键字
代表使用该方法的对象的引用
需要指出当前使用方法的对象
this可以处理方法中成员变量和参数重名的情况
重写
在子类中可以根据需要对从基类中继承的方法进行重写
重写方法必须和被重写方法具有相同的方法名称、参数列表、返回类型
重写方法不能使用比被重写方法更严格的访问权限super
在java类中使用super来引用基类
多态
指在执行期间判断所引用对象的实际类型,根据其实际的类型调用相应的方法(动态找方法,new谁找谁)
要有继承,要有重写,父类引用指向子类对象抽象类
抽象类必须被继承
抽象方法必须被实现
抽象类不能被实例化
抽象方法只需声明,不需要实现.
final
final的变量不能被改变
final的方法不能被重写
final的类不能被继承
接口
接口与实现类之间存在多态性
接口是特殊的抽象类
接口可以多重实现
接口中只能定义抽象方法
接口可以继承其他的接口,并添加新的属性和抽象方法
总结:
这次重新学习了面向对象的知识,突然有种豁然开朗的感觉,相比之前的理解又加深了,更加体会到了学习是一个循序渐进的过程,好好保持总结的好习惯.