第一百二十四章 面向对象(3 / 4)

有多可怜。”

卢赫听后,目瞪口呆,“不是,这种明摆着的离谱活儿,他也敢接?”

“大仙心善呐。”艾达否连连撇嘴,“你看他那一脸慈善样,心系群生的,比咱俩境界高。”

“唉,一群走投无路的科学家,最终拥抱了玄学,也是挺可怜的。大仙你还真是普渡众生啊。”

卢赫调侃完,望了一眼摆满生活用品的桌椅和床铺,一屁股坐在狭小空间里的唯一一块空地上,仰头望着艾达否,“老艾,我想请教你一个问题,什么是面向对象编程?”

艾达否对着天花板放空,心不在焉道:“字面意思,就是面对着你的对象写程序,你把你家里特能哭的那位,搬到电脑屏幕旁边,对着她编程,这不就是面向对象编程吗?”

“我去你大爷的,没事就戳我肺管子!”卢赫一把抓起掉在地上的卷纸扔向艾达否,“我现在什么级别你也知道,你要是把我搞抑郁了,有人拿你是问。”

说完,他瞬间换上了一幅忧郁脸。

艾达否立刻紧张起来,“对不起儿子,为父错了,你想知道面向对象和面向过程的区别是吧,爸爸我这就给你讲,包你听懂。”

他坐起身,轻了轻嗓子:“其实很简单,拿史书做个比喻,面向过程是编年体,是《资治通鉴》;面向对象是纪传体,是《史记》。”

“然后呢?”卢赫追问。

“没有然后了,就这么简单。看你悟性了。”

卢赫摆出一幅黑脸,“我要是有时间悟,还来找你干什么?”

艾达否缕了缕并不存在的胡子,“那还是让为父告诉你吧。

编年体中,展示的是世间万物随时间轴的变化过程,今年发生了什么,明年发生了什么,相当于程序一行一行顺序执行各种动作,你编写的是这些动作的实现过程。

而纪传体中,是有主角的,主角是一个人,一个对象。这个对象他是谁,他有什么性格,他说话有什么口癖,他有什么能耐,这些都需要你事先定义好。有人才有历史。

这相当于你定义了一个类,在类中定义了各种功能,实例化它,把它变成活生生的对象,你才能借它的手眼,去推演这个世界。”

卢赫听了直点头,可没一会儿又开始摇头,“什么是类和实例?”

“类就是一个模板,你可以在其中定义它的属性和方法。比如哺乳动物就是一个类。

什么是哺乳动物?全身被毛、运动快速、恒温胎生、体内有膈,符合这些特征的就是哺乳动物,这是它们的属性。

哺乳动物能干什么?能用肺呼吸、能跑能跳、能嗷嗷叫、能动脑子,这是它们的方法。

继续阅读,后面更精彩!

哺乳动物这四个字是抽象的,它不指代现实中的任何一种生物,它只是一个模板,一个类。

而实例,是根据这个模板创造出来的对象,就是我们刚刚提到的对象。每个对象都有和模板相同的属性和方法,但它们各自的数据可以不尽相同。

比如,狗和猫都是哺乳动物,都是对象。它们都全身被毛、运动快速、恒温胎生、体内有膈,但长得不一样。它们都能用肺呼吸、能跑能跳、能嗷嗷叫、能动脑子,但狗是汪汪叫,猫是喵喵叫。它们各自的数据不同。”

艾达否说完,幽幽地望着卢赫,脸上竟然带着一丝期待。

卢赫转了转眼珠,“面向对象搞得这么复杂,相对于面向过程有什么优越性吗?”

“很好。”艾达否满意地点了点头,“我那些三年了连接口文档都看不懂的师弟师妹们也曾问过这个问题。

面向对象的优越性,在于继承和多态。

我们刚刚定义了一个名为哺乳动物的类对吧,哺乳