面向对象******
语言的分类:
- 面向机器语言:抽象成机器指令,机器容易理解,代表语言:汇编语言
- 面向过程语言:做一件事情,排出一个步骤,每一步都分清楚 第一步做什么第二做什么,如果出现情况a做什么处理,出现b做什么处理,适用于问题规模小,可以步骤化,按部就班的处理。代表语言:C语言
- 面向对象语言 00P(面向对象编程):适用于情况很复杂需要很多人很多部门协左 代表语言:C++, JAVA, Python等
面向对象:什么是面向对象呢== 一个认识世界,分析世界的方法论。将万事万物抽象为各种对象
类(class):类就是抽象的概念,是万事万物的抽象,是一类事物的共同特征的集合,用计算机语言来描述类,就是属性和方法的集合
属性:它是对象状态的抽象,用数据结构来描述。
操作:它是对象行为的抽象,用操作名和实现该操作的方法来描述。
对象(instance,object):对象是类的具象,是一个实体。对于我们每个人这个个体,都是抽象概念人类的不同的实体
哲学方面:就是一切皆对象,对象是数据和操作的封装,对象是独立的,但是对象之间可以相互作用,目前OOP是最接近人类认知的编程范式
面向对象的三要素
1 封装
- 组装:将数据和操作组装到一起。
- 隐藏数据:对外只暴露一些接口,通过接口访问对象。比如驾驶员使用汽车,不需要了解汽车的构造细节,只需要知道使用什么部件怎么驾驶就行,踩了油门就能跑,可以不了解其中的机动原理。
2 继承
- 多复用,继承来的就不用自己写了
- 多继承少修改,OCP(Open-closed Principle),使用继承来改变,来体现个性
3 多态
- 面向对象编程最灵活的地方,动态绑定
举例:
人类就是封装;
人类继承自动物类,孩子继承父母特征。分为单一继承、多继承;
多态,继承自动物类的人类、猫类的操作”吃“不同。