700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 函数式编程与面向对象编程的区别

函数式编程与面向对象编程的区别

时间:2018-12-11 03:53:36

相关推荐

函数式编程与面向对象编程的区别

定义

函数式编程:以函数思维做为核心,在这种思维的角度去思考问题。这种编程最重要的基础是λ演算,接受函数当作输入和输出。面向对象编程:这种编程是把问题看作由对象的属性与对象所进行的行为组成。基于对象的概念,以类作为对象的模板,把类和继承作为构造机制,以对象为中心,来思考并解决问题。

函数式编程

支持

闭包:一个函数内定义另一个函数高阶函数:参数作为函数,或者返回值作为函数的函数惰性计算:在将表达式赋值给变量的时候,不计算表达式的值,而是在变量第一次使用的时候再计算独立性:函数不依赖外部的状态,也不修改外部的状态(只要我们输入的参数不变,那么输出的结果也一定是一样的)无锁并发:因为函数的独立性,所以函数各个部分的执行顺序可以打乱,多个线程之间的执行不会互相干扰,不需要锁来保护,所以函数式编程的多线程并发是安全的

面向对象编程

面向对象的程序设计把计算机程序视为一组对象的集合,而每个对象都可以接收其他对象发过来的消息,并处理这些消息

面向对象的三个特征

封装:把对象的属性和操作结合为一个独立的整体,并尽可能隐藏对象的内部实现细节,对数据的访问只能通过已定义的接口——(例如将属性设置为私有,然后为其设置setter/getter方法,这就是封装)继承:继承可以使得子类具有父类的属性和方法或者重新定义、追加属性和方法等——(例如一个类A继承另一个类B,则称A为B的子类,B为A的父类)多态:多态指同一个实体同时具有多种形式——(例如同一个接口,使用不同的实例而执行不同操作)

如果一个语言只支持类而不支持多态,只能说明它是基于对象的,而不是面向对象的

总结一下

函数式编程:将程序数学化

面向对象编程:万物皆为对象

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。