通俗的语言解释面向对象

面向对象:

Jeff Goodell:请你用尽量简练的语言解释一下,究竟什么是面向对象的软件?

乔布斯:对象就像人一样,也是活生生的生命。他们有知识,知道怎么完成任务;他们有记忆,可以把发生的事情记下来。而你和他们的互动并不是低层次的,你是与他们在一个高度抽象的层面上互动,就像我们现在的对话一样。

我举个例子来说明。如果我是一个“洗衣”对象,你可以把脏衣服给我,然后告诉我说:“请帮我把这些衣服洗了吧!”而我恰好知道旧金山最好的洗衣房在哪,并且 我会说英语,兜里也有美元。于是我出门打了一辆出租车,告诉司机带我去位于旧金山的洗衣房。我到了那里洗好衣服之后,又坐车回到这里。我把洗好的衣服交还 给你,说:“你的衣服已经洗好了。”

你并不知道我是怎么做到的。你不知道哪里有洗衣店,也可能只会说法语,或者是兜 里没钱,连车都打不了。但是我知道怎么完成这项任务,而你不需要知道任何细节。所有的这些复杂流程都隐藏在我的内部,而我们之间可以高度抽象地互动。这就 是对象。他们把复杂过程封装在内部,而对外呈现的接口是高层次的,抽象的。

时间: 2024-08-06 02:07:35

通俗的语言解释面向对象的相关文章

转载:怎样用通俗的语言解释REST,以及RESTful?

作者:覃超链接:https://www.zhihu.com/question/28557115/answer/48094438来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. URL定位资源,用HTTP动词(GET,POST,DELETE,DETC)描述操作. --- 简洁版 --- 0. REST不是"rest"这个单词,而是几个单词缩写.但即使那几个单词说出来,也无法理解在说什么 -_-!! (不是要贬低人,是我自己也理解困难):1. REST描述的是

[转载]通俗的语言解释一下什么是 RPC 框架

来自知乎:https://www.zhihu.com/question/25536695 关于RPC你的题目是RPC框架,首先了解什么叫RPC,为什么要RPC,RPC是指远程过程调用,也就是说两台服务器A,B,一个应用部署在A服务器上,想要调用B服务器上应用提供的函数/方法,由于不在一个内存空间,不能直接调用,需要通过网络来表达调用的语义和传达调用的数据. 比如说,一个方法可能是这样定义的:Employee getEmployeeByName(String fullName)那么: 首先,要解决

用通俗的例子解释OAuth和OpenID的区别【原】

什么是OAuth(Wiki) 什么是OpenID(Wiki) 详细的定义可以看wiki,下面举个例子说说我的理解 现在很多网站都可以用第三方的账号登陆,比如,现在我要登录淘宝买东西,而如果我没有淘宝的账号,我也可以用微博的账号登录,这个微博账号就是第三方账号了. OpenID强调 验证 authentication,而OAuth强调 授权 authorization. 验证就是说“我”是不是(微博用户),而授权是说“淘宝”可不可以,而可不可以的前提则是“我”是不是. 过程大概是这样 我点开微博登

Objective-C语言介绍 、 Objc与C语言 、 面向对象编程 、 类和对象 、 属性和方法 、 属性和实例变量

Objective-C语言介绍 . Objc与C语言 . 面向对象编程 . 类和对象 . 属性和方法 . 属性和实例变量 1 第一个OC控制台程序 1.1 问题 Xcode是苹果公司向开发人员提供的集成开发环境(非开源),用于开发Mac OS X,iOS的应用程序.其运行于苹果公司的Mac操作系统下. 本案例要求使用集成开发工具Xcode编写OC的HelloWorld程序,在Xcode的控制台中, 1.2 方案 首先,启动集成开发工具Xcode. 然后,创建OC语言的工程. 最后,运行所创建的工

用C语言实现面向对象的开发

C语言的对象化模型 面向对象的特征主要包括: .封装,隐藏内部实现 .继承,复用现有代码 .多态,改写对象行为 采用C语言实现的关键是如何运用C语言本身的特性来实现上述面向对象的特征. 1.1 封装 封装是一种信息隐蔽技术,它体现于类的说明,是对象的重要特性.封装使数据和加工该数据的 方法(函数)封装为一个整体,以实现独立性很强的模块,使得用户只能见到对象的外特性(对象 能接受哪些消息,具有那些处理能力),而对象的内特性(保存内部状态的私有数据和实现加工能 力的算法)对用户是隐蔽的.封装的目的在

C语言之----面向对象的方法实现链表的操作

1 /* 2 * 详细运行过程: 本程序实现的是对链表的简单的操作,即链表的增 删 改 查 销毁 初始化 3 * 运用面向对象的思想,实现一个类op,op中包括了所有的链表操作方法 4 * 其他的程序调用op类,实现对表链表的操作 5 * 链表包括 6 * 面向对象,简单易学程序更加紧凑,更加健壮,更安全 7 */ 8 #include<string.h> 9 #include<stdlib.h> 10 #include<stdio.h> 11 12 #define o

Python源码 -- C语言实现面向对象编程(基类&amp;派生类&amp;多态)

由于公司的ERP系统数据量大,有40G+的数据,并发用户90+,连接数1000+,原来的IO性能跟不上用户的操作响应需求,报表查询慢,该做的索引都做过了,索引每周重建一次,还是解决不了问题,为此,公司新购了dell poweredge R720xd服务器,该套服务器支持2个阵列,24个硬盘,双CPU,64G内存,比较牛X的了,我们创建两个raid,两块SAS硬盘做Raid1,6块SSD硬盘做Raid10,系统装好了,高兴呀,但结过测试发现,总有一个raid速度相当慢,和台式机速度一样,我地妈呀,

如何用通俗易懂的语言解释需求变更带来的项目影响

如何用通俗易懂的语言解释需求变更带来的项目影响 你去饭店,坐下来.“服务员,给我来份宫保鸡丁!”“好嘞!”——————这叫原始需求 大厨做到一半.“服务员,菜里不要放肉.”“不放肉怎么做啊?”“不放肉就行了,其它按正常程序做,不就行了,难吗?”“好的您稍等”——————中途需求变更 厨房:大厨:“你大爷,我肉都回锅了”服务员:“顾客非要要求的嘛,你把肉挑出来不就行了吗”大厨:“行你大爷”然而还是一点点挑出来了——————改动太大,部分重构 餐厅:“服务员,菜里能给我加点腐竹吗?”“行,这个应该简

luajit利用ffi结合C语言实现面向对象的封装库

?luajit中,利用ffi可以嵌入C,目前luajit的最新版是2.0.4,在这之前的版本我还不清楚这个扩展库具体怎么样,不过在2.04中,真的很爽. ? 既然是嵌入C代码,那么要说让lua支持面向对象,不如说是让C语言模拟面向对象编程,然后让luajit的ffi嵌入. 要文字彻底来描述清楚这个问题,我的表达能力很有限,说不清楚,所以直接用代码来说吧. //C++ class foo_type{ public: void foo1() { printf("%d", a + b); }