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

面向对象编程概念
EN

Software Engineering用户
提问于 2012-01-10 10:49:23
回答 5查看 2.3K关注 0票数 5

具体来说,没有继承的编程显然不是面向对象的;我们称之为抽象数据类型编程。

我从Grady Booch的“面向对象的分析与应用设计”的书中找到了这句很棒的台词。因此,为了使程序成为OO程序,继承、抽象、封装和多态(?)必须要做的事?

有人能解释一下吗?

EN

回答 5

Software Engineering用户

回答已采纳

发布于 2012-01-10 19:42:41

抽象和封装实际上是面向对象的东西所必需的。

继承和多态性是利用不“重新发明车轮”的策略,这对使用OO设计是有利的。

OO设计的基本思想是让大量程序员在项目X上协同工作,而不会产生大量的通信开销,而将项目分解为具有定义的对象的对象是一种优雅的解决方案。

票数 3
EN

Software Engineering用户

发布于 2012-01-10 17:52:35

快速短答案

答案是,这是非常主观的软件分析员或软件模型。

扩展无聊答案

有几个概念与面向对象范式相关或部分相关。你已经提到了其中的大部分。

例如,您没有提到的一个概念是消息传递,这在大多数当前的O.O.编程语言中是缺失的,并且是可用的,以及早期O.O.编程语言("Simula")中的封装和继承。

我有时会使用几个具有这些特性的面向对象Pascal的变体或“习惯用法”,并且有一个变体允许使用"messages“作为编程语言(关键字"message")的一部分,类似于”尝试捕捉“异常,但不会中断执行。

同时,其他变体和其他编程语言作为可选库(函数而不是关键字)提供。

摘要

您可能会发现,有时编程语言可能会跳过其中的一些,仍然会被一些人认为是O.O.,而其他人则不然。非常主观。

你要求的是普通的智力好奇心吗?

你想知道你正在使用的编程语言是否完全是O.O.?

你在使用大学/大学作业,定制O.O.编程语言吗?

您是在使用业余爱好、宠物项目、定制O.O.编程语言吗?

这些问题,是我自己的好奇心,也是为了知道如何让我的答案更清楚;)

有一些编程语言和编程范式比较课程在高校,涉及这一主题。

干杯。

票数 1
EN

Software Engineering用户

发布于 2012-01-10 18:44:39

您可以在没有继承的情况下对任何域进行建模。继承有时有助于更清楚地了解类,但它在面向对象方面并不是强制性的事情,尽管Booch引用了它。

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

https://softwareengineering.stackexchange.com/questions/129424

复制
相关文章

相似问题

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