1、 编程范式编程
在咱们编程语言里面,大体能够分为两个大类:命令式编程 和 声明式编程数组
1. 命令式编程编程语言
所谓命令式编程,就是以命令为主,给计算机一条一条命令,计算机来按照咱们给的命令原封不动的执行。函数式编程
命令机器如何去作事情(how)函数
常见的命令式编程语言有:C语言,C++,C#,Java,PHP,Rubyprototype
从命令式编程语言又能够分为两大类:面向过程 和 面向对象翻译
(1) 面向过程对象
就是分析解决问题所须要的步骤,而后把这些步骤一步一步实现继承
(2) 面向对象游戏
所谓面向对象,就是将程序里面的模型看作一个一个的对象。对象和对象之间会产生彼此的联系。使用对象来解决问题
须要注意:就算是面向对象编程,里面也会有面向过程的步骤。
2. 声明式编程
所谓声明式编程,就是指告诉计算机你想要什么(what),让机器去解决如何实现。
声明式编程里面也能够分为两大类:DSL 和 函数式编程
(1) DSL
DSL翻译成中文为领域专用语言(Domain Specific Language)。顾名思义,就是指某一个领域专用的语言。
常见的DSL语言有HTML,CSS,SQL
(2) 函数式编程
将程序里面的一些模型看作是数学里面的函数来进行计算。
1、 面向对象
1. 什么是面向对象
首先须要搞清楚什么是对象(Object)。通俗来说,就是东西。咱们这个世界就是由各类各类的东西组成的。东西与东西之间有彼此的联系。
现实生活中咱们描述一个东西,或者一个物品的时候,经常会从2个方面来进行描述
例如我要描述一个手机
首先第一个就是外观(属性):白色 5.5寸 矩形
接下来就是从功能来进行描述:看电影 打电话 玩游戏
2. 面向对象和面向过程的区别
面向过程的特色:由顶自下,依次执行,咱们须要去考虑每个步骤。
面向对象的特色:面向对象更加符合咱们人类的思想。咱们只须要找到咱们须要的对象便可。
ATM机取钱
面向过程:咱们须要考虑每个步骤,例如取钱的时候金额是多少,余额是多少,用户的输入是否合法
面向对象:只须要考虑这个ATM这个对象便可
3. 面向对象的特色
通常来说,面向对象的特色有3个:封装,继承和多态
有些老的教材,会告诉你面向对象的特色有4个:除了上面3个之外,还多加了一个抽象
封装:就是将细节隐藏起来,不向外部暴露。例如现实生活中电视机就是一个典型的封装,没法看到内部电子元件这些细节
继承:和现实生活中同样,儿子能够继承父亲的一些东西。在程序里面子类能够继承父类。
多态:若是从语言的角度来看,就是不一样对象同一方法的做用不同。例如现实生活中,一个action这个单词对于不一样的职业的人来说,意义是不同的。
4. 类
和现实生活中同样,东西一多,按照人的思惟天然就会想到分类。好比给你1万本书。咱们首先会想到分类,例如分为小说类,科技类,漫画类,政治类,经济类...每个类别下面的书都是有共同的特色的。
类和对象的关系:类是对象的一种归纳,是一个抽象的东西,对象是类的一种具体实现,是一个具体的东西。
5. 建立对象
(1) 通用编程语言产生对象的方式
对象是从类产生的。因此若是咱们要获取对象,首先须要建立类
(2) JS中建立对象的方式
在ES6以前,JS里面没有类的概念。因此在ES6以前都是经过函数来模拟类
模拟类的函数一般被称之为构造函数。为了区分构造函数和普通函数,有一个不成文的规定,构造函数的函数名首字母大写
对象和构造函数,以及原型对象之间的关系图(重要)
前面咱们所讲述的数组,函数,数字,字符串等都有对应的构造函数。若是是经过构造函数实例化的,那么就是一个对象
对象里面有一个叫作constructor的属性,能够查看到这个对象的构造函数
在每个构造函数里面,都有一个隐藏属性,叫作prototype,这个属性指向一个对象,这个对象就是经过构造函数实例化出来的对象的原型对象