什么是面向对象?
基本概念
- 对象(Object),是客观存在,表示客观世界中的某个具体的事物。有物理上的也有逻辑上的。
- 面向对象(Object Oriented) :是人类的活动,是人类认知、观察客观事物的方法论。面向对象就是面向客观事物的本源性。
- 对象的本源性:是所有客观事物的内在特性,它包括整体性、关联性、交互性、继承性、多态性。
面向对象的四大特性
- 抽象:能对客观世界中错综复杂、相互交织的Object划分类,区分一类Object与另一类Object,即揭示一类Object的共性。类是对具有共同属性和行为的一组对象的抽象描述。抽象的内容是与软件目标有关的特征。
- 封装:对Object抽象出的属性和行为进行描述的形式。即封装事物的整体性。
- 继承:对象具有血缘关系,有家族谱,而且去腐生新,不断进化。这就是Object的继承性。对事物的分门别类本身就体现继承性,如生物学的界、门、纲、目、科、属、种。软件开发就是利用继承性可对Object
更好的分门别类,软件结构更严谨,代码的复用性更强。 - 多态:对象在不同的条件下,同样的行为会表现不同的效果,这就是Object的多态。多态在日常生活中司空见惯,如人的“笑”,有微笑、大笑、冷笑、嘲笑。同样都是笑,表达的意境和效果显然不同
个人总结
作为程序员时刻要牢记,编程就是为了解决实际问题。面向对象的编程就是为了更好的处理现实与程序数据结构的映射。为此我们需要抽象现实问题,也就是面向对象的抽象和封装,接下来才讨论对象的共性:继承、多态。所以说,抽象,封装并不是物体的固有属性,是我们的一种手段,描述物体实质属性的前提