当前位置:  开发笔记 > 人工智能 > 正文

面向对象编程背后的理论

如何解决《面向对象编程背后的理论》经验,为你挑选了2个好方法。

Alonzo Church的lambda演算是函数式语言背后的数学理论.面向对象编程有一些形式理论吗?



1> Roland Kofle..:

面向对象来自心理学而非数学.

如果你考虑一下,它就像人类工作的方式更像计算机的工作方式.我们认为在我们分类的对象中.例如,这张桌子是一个座椅家具.

Jean Piaget(1896-1980)为例,他研究儿童认知发展理论. 维基百科说:

皮亚杰在计算机科学和人工智能领域也有相当大的影响力.

他发现的一些认知概念(暗示了面向对象的概念):

分类 基于共同特征将对象分组在一起的能力.

类包含比简单分类更先进的理解是,某些类或对象集也是更大类的子集.(例如,有一类叫做狗的物体.还有一类叫做动物.但是所有的狗都是动物,所以这类动物包括狗的动物)

阅读更多:伯爵的发展理论http://www.learningandteaching.info/learning/piaget.htm#ixzz1CipJeXyZ



2> Mark Byers..:

OOP是一种混合功能,各种语言以稍微不同的方式实现.OOP没有单一的正式定义,但许多人试图根据声称面向对象的语言的共同特征来描述OOP.来自维基百科:

Benjamin Cuire Pierce和其他一些研究人员认为任何将OOP提炼到最小特征的尝试都是徒劳的.尽管如此,他仍然确定了在大多数面向对象语言中支持OOP编程风格的基本功能:

动态分派 - 当在对象上调用方法时,对象本身通过在与对象关联的表中在运行时查找方法来确定执行哪些代码.此功能将对象与抽象数据类型(或模块)区分开来,后者具有所有实例的操作的固定(静态)实现.它是一种编程方法,可以提供模块化组件开发,同时非常高效.

封装(或多方法,在这种情况下,状态保持独立)

亚型多态性

对象继承(或委托)

打开递归 - 一个特殊的变量(在语法上它可能是一个关键字),通常称为this或self,它允许方法体调用同一个对象的另一个方法体.这个变量是后期的; 它允许在一个类中定义的方法在其某些子类中调用稍后定义的另一个方法.

推荐阅读
U友50081205_653
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有