面向对象总结

1、什么是面向对象?

  面向对象编程是一种编程范式(英文为:Object Oriented Programming ,缩写为:OOP),它将代码分为具有属性和方法的对象。

2、什么是编程范式?

所谓的编程范式(英文为:programming paradigm),指的是计算机编程的基本风格或典范模式。 

在编程语言中,根据编程范式来分类可以分为2个大类:分别为命令式编程声明式编程

1、命令式编程

所谓命令式编程,就是以命令为主,给机器提供一条又一条的命令序列让其原封不动的执行。程序执行的效率取决于执行命令的数量,(概括起来就是:命令式编程就是命令“机器”如何去做事情(how),这样不管你想要的是什么(what),它都会按照你的命令实现),我们常见的命令式编程有 :C++ , C语言 ,Java  , C#

在命令式编程语言里面,又可以分为2个大类:面向过程面向对象

 a、面向过程:就是分析出解决问题所需要的步骤,然后把这些步骤一步一步实现

 b、面向对象:面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描述某个事物在整个解决问题的步骤中的行为

2、声明式编程

声明式编程就是告诉“机器”你想要的是什么(what),让机器想出如何去做(how)

在声明式编程里面又分为2个大类:领域专用语言和函数式编程

3、面向对象的三大特征(封装 ,继承,多态)

封装:内部运作隐藏在对象里面,只有基本功能暴露给最终用户。

继承:新对象继承一个现有对象的特征,然后添加一些新的特性。

多态:像电视一样,除了可以观看电视节目以外,还可以用作其他用途(比如连接游戏机后,电视屏幕就能显示出游戏画面),通过电视屏幕输出的这个行为是相同的,但是却可以用作不同的物体,物体不同,最后的效果就不同。

4、原型对象

在JavaScript中,每一个对象,都有一个原型对象。而原型对象上面也有一个自己的原型对象,一层一层向上找,最终会到达 null 。

如下图所示:

                     

由此得出结论:

1、JavaScript 中每个对象都有一个原型对象。可以通过 __proto__ 属性来访问到对象的原型对象。

2、通过 __proto__ 属性一直向上寻找原型对象的话,最终会找到 null 。

3、构造函数的 prototype 属性指向一个对象,这个对象是该构造函数实例化出来的对象的原型对象。

4、JavaScript 中的根对象是 Object.prototype 对象。Object.prototype 对象是一个空对象。

5、JavaScript 中的每一个对象,都是从Object.prototype 对象克隆而来的。Object.prototype 对象就是它们的原型。而 Object.prototype 对象的原型为 null.。

关于对象分类:

在ECMAScript 6 之前,对象可以分为2大类,分别是原生对象和宿主对象,

原生对象又可以分为2类:内置对象和自定义对象。

原文地址:https://www.cnblogs.com/x0815/p/11951057.html