乔帮主告诉你什么是面向对象

对于面向对象编程(OOP)这个概念,至今为止我还未见过有人能比乔布斯诠释得更加透彻。乔布斯从来没有接受过正式的工程训练,但是他对于自己所做的和所说的都有非常清晰的思路,无论是技术、设计还是艺术。

早在1994年,Rolling Stone对乔布斯有一个采访。在那个年代,面向对象仍然是一个很潮的概念,能够理解并付出实践的人并不多,而乔布斯却给公众定义了什么是面向对象。

Jeff Goodell:

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

乔布斯:

对象就像人一样,也是活生生的生命。

他们有知识,知道怎么完成任务;他们有记忆,可以把发生的事情记下来。你和他们不在低层次上交互,而是像我们现在的对话一样,在一个高度抽象的层面上交互。

我举个例子来说明。

如果我是你的“洗衣”对象,你可以把脏衣服给我,然后告诉我说:“请帮我把这些衣服洗了吧!”。

//一个对象调用另一个对象,“洗衣”对象对外提供一个洗衣方法

而我恰好知道旧金山最好的洗衣房在哪,并且我会说英语,兜里也有美元。于是我出门打了一辆出租车,告诉司机带我去位于旧金山的洗衣房。我到了那里洗好衣服之后,又坐车回到这里。我把洗好的衣服交还给你,说:“你的衣服已经洗好了。”。

//“洗衣”对象中洗衣方法的实现过程

你并不知道我是怎么做到的。你不知道哪里有洗衣店,也可能只会说法语,或者是兜里没钱,连车都打不了。但是我知道怎么完成这项任务,而你不需要知道任何细节。

//“洗衣”对象中洗衣方法的实现并不对外暴露,外界并不知道、或者说并不需要知道它的具体实现

所有的这些复杂流程都隐藏在我的内部,而我们之间可以高度抽象地互动,这就是对象。他们把复杂过程封装在内部,而对外呈现的接口是高层次的,抽象的。

所谓面向对象,就是将功能、属性高度封装在某个对象中,对外的暴露永远是最简单最抽象的

时间: 2025-01-06 03:04:18

乔帮主告诉你什么是面向对象的相关文章

乔布斯告诉你:什么是面向对象编程

面的这段话摘自 1994 年 Rolling Stone 对乔布斯的采访,乔布斯解释了什么是面向对象编程. Jeff Goodell:请你用尽量简练的语言解释一下,究竟什么是面向对象的软件? 乔布斯:对象就像人一样,也是活生生的生命.他们有知识,知道怎么完成任务:他们有记忆,可以把发生的事情记下来.而你和他们的互动并不是低层次的,你是与他们在一个高度抽象的层面上互动,就像我们现在的对话一样. 我举个例子来说明.如果我是一个“洗衣”对象,你可以把脏衣服给我,然后告诉我说:“请帮我把这些衣服洗了吧!

乔帮主语录 11月19日星期天 天气比较冷

自由从何而来?从自信来,而自信则是从自律来,先学会克制自己,用严格的日程表控制生活,才能在这种自律中不断磨炼出自信.自信是对事情的控制能力,如果你连最基本的时间都控制不了,还谈什么自信?

看乔布斯《遗失的访谈》有感

今天在虎嗅网看了16年前遗失的.72分长的乔布斯访谈!事实上当时我马上准备睡觉了,可看到这个视频我一下就清醒了不少,室友的游戏声不断,蚊子也在我身上飞来飞去,可是乔帮主的谈话实在是太精彩了,我忍不住看完之后还写了这篇文章,用来记录我的想法. 不得不感叹下,乔帮主年轻时候真的很帅,我甚至觉得从某个角度看上去他有点点像约翰列侬,他们两个人在某些方面倒确是有些相同的. 这篇谈话中,乔布斯主要谈了自己的成长经历和关于经商,做产品的一些想法,他调侃IBM,嘲笑微软没有品味,语气中流露出对从前的苹果的热衷和

1,OC语言的前世今生 ,2,OC语言入门,3,OC语言与C的差异,4,面向对象,5,类和对象的抽象关系,6,类的代码创建,7,类的成员组成及访问

1,OC语言的前世今生 , 一, 在20世纪80年代早期,布莱德.麦克(Brad Cox)设计了OC语言,它在C语言的基础上增加了一层,这意味着对C进行了扩展,从而创造出一门新的程序设计语言,支持对象的创建和操作. 二,1985年,被赶出苹果公司的乔帮主成立了Next公司; 三, 1988年,Next计算机公司获得了OC语言的授权,并发展了OC语言库和一个开发环境,1994年,Next计算机公司(同年更名为Next软件公司)和Sun公司针对NEXTSTEP系统联合发布了一个标准规范,名为OPEN

乔布斯剧院为啥要用天价座椅?

乔布斯剧院位于苹果新总部内,靠近环形大楼,除去外面圆形的入口部分,其主要建筑均位于地下,共有4层,主要的大厅能容纳1000人,苹果重要产品都会在这里发布,自然, iPhone8的发布会也会在这里举行.随着发布今天的发布会召开,越来越多的媒体开始报道这场盛会,方方面面,包罗万象,甚至有国外媒体专门报道了乔布斯剧院的椅子:"那都是一些极好的椅子,真皮座椅,每把花费高达1.4万美元,折合人民币约9.1万元,整个大厅单就座椅花费就达到了1400万美元."显然,同苹果的现金储备或者营收数字相比,

面向对象基本概念

面向对象基本概念 乔高峰  于深圳整理(2007-01-13) 面向对象(object-oriented ;简称: OO) 至今还没有统一的概念,我这里把它定义为:按人们认识客观世界的系统思维方式,采用基于对象(实体)的概念建立模型,模拟客观世界分析.设计.实现软件的办法.通过面向对象的理念使计算机软件系统能与现实世界中的系统一一对应. 面向对象方法(Object-Oriented Method)是一种把面向对象的思想应用于软件开发过程中,指导开发活动的系统方法,简称OO (Object-Ori

javascript 的面向对象特性参考

最近在看用javascript+css实现rich client.javascript 也是一个蛮有意思的语言.特别是其面向对象的实现和其他“标准”的OO launguage有很大的不同.但是,都是动态语言,我还是觉得它比起python语法和库都差得太远.可是没有explorer支持python开发 啊...:( 这是我学习javascript中面向对象特性的一点总结.希望对具有其他语言的面向对象设计经验的朋友理解javascript的OO有所帮助.我具有c++,java和python的面向对象

库克清华演讲:乔布斯弥留之际的一句话

这些都是他的前任乔布斯不屑做的.乔布斯从来没来过中国,也从来不会去"讨好"某个市场,但乔布斯有"资本"这么做,而库克却不能这么拽.在库克出任苹果CEO四年后,人们依然会把他和乔布斯不断地做比较;最大的质疑在于,随着乔布斯的逝去,苹果在产品上创新力在不断地消失,继任人库克只能在运营上和市场上下工夫. 库克这次访华,给了那些质疑者强烈的回应:"没有人能再成为乔布斯,我只能做自己".他特意搬出了乔布斯的临终遗言:乔布斯嘱咐他,在做决定时,不要想如果他是

个人总结------高级知识点必会

高级知识点之必会 共44题 1.OC中创建线程的方法是什么?如果指定在主线程中执行代码?如何延时执行代码.[难度系数★★] 1)创建线程的方法 NSThread NSOperationQueue和NSOperation GCD 2)主线程中执行代码 [self performSelectorOnMainThread:withObject: waitUntilDone:]; [self performSelector: onThread:[NSThreadmainThread] withObjec