首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >面向对象编程范式

面向对象编程范式
EN

Stack Overflow用户
提问于 2016-01-11 20:18:17
回答 3查看 4.8K关注 0票数 1

我最近偶然发现了有趣的问题(或者仅仅是作者的错误),我开始质疑自己。经过一些研究,我不得不说我不能百分之百地肯定我的答案,所以我想问一下我的想法是否正确。问题是:

描述面向对象编程范例

我首先想到的是多态、继承、封装、抽象。但是为什么会有多种形式呢?据我所知,我的答案是对范式的描述(单一的),而不是范式(复数)。我是不是错过了什么,或者这是正确的答案?

EN

回答 3

Stack Overflow用户

发布于 2018-02-18 08:38:06

我的论点是基于paradigm的定义,这通常是一种做事的模式。这些范例将是:

  • 抽象化
  • 封装
  • 多态
  • 遗产继承。
票数 2
EN

Stack Overflow用户

发布于 2016-01-11 20:44:36

你可能想看看艾伦·凯对此有何看法:http://c2.com/cgi/wiki?AlanKaysDefinitionOfObjectOriented

链接的必要摘录:

这个定义来自Smalltalk的早期版本(Smalltalk-72?),规则5和规则6清楚地显示了Smalltalk的Lisp传统。Kay这样说,并指出规则4-6将随着Smalltalk的发展而发生变化。

  1. EverythingIsAnObject。
  2. 对象通过发送和接收消息(就对象而言)进行通信。
  3. 对象有自己的内存(就对象而言)。
  4. 每个对象都是一个类的实例(必须是一个对象)。
  5. 类保存其实例的共享行为(以程序列表中对象的形式)。
  6. 若要评估程序列表,控件将传递给第一个对象,其余部分将作为其消息处理。

被一些人认为是面向对象编程之父的艾伦·凯(Alan)认为,以下特征是面向对象编程的基础:

  1. EverythingIsAnObject。
  2. 通信由相互通信的对象执行,请求对象执行操作。对象通过发送和接收消息进行通信。消息是一个操作请求,与完成任务所需的任何对象捆绑在一起。
  3. 对象有自己的内存,内存由其他对象组成。
  4. 每个对象都是类的实例。类只是表示类似对象的分组,例如整数或列表。
  5. 该类是与对象关联的行为的存储库。也就是说,作为同一个类的实例的所有对象都可以执行相同的操作。到目前为止,与上面的1-5相似。规则6不同。删除了对列表的引用,相反,我们有:
  6. 类被组织成一个单根树结构,称为继承层次结构。与类实例相关联的内存和行为对于与此树结构中的后代关联的任何类都是可用的。
票数 1
EN

Stack Overflow用户

发布于 2016-01-11 20:31:43

这取决于观察角度,更好的说是粒度,或者你想比较或强调什么。

面向对象编程是一种编程范式。但是,面向对象编程有不同的分类。将其中的多个称为面向对象编程范例是有意义的。

有关编程范例的漂亮列表,请参见programming

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34730320

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档