登陆注册
15296300000148

第148章 7 算法和多态性

大B:“算法和多态性是编程中的主要思想,但是靠这些术语,我们很难表述其具体含义。如果想向其他人表示一个方法,你可以编辑源代码,然后据此向其他人仔细讲述。”

小A:“喔。”

大B:“在某些情况下,算法也许完全包含在一个方法中。但是算法的实现经常依赖于多个方法的相互使用。”

小A:“嗯。”

大B:“Introduction to Algorithms(算法导论)给出了算法的定义:算法是定义良好的计算过程,把数据值或者数据集合作为输入,并输出某数据值或者数据集合。算法是一个过程――包含一些指令序列,接收输入,产生输出。”

小A:“嗯。”

大B:“单个方法也许是个算法:它接受输入――其参数列表――并产生输出作为返回值。然而,在面向对象编程时很多算法会需要多个方法。算法就是需要完成某项任务的过程。它们也许表现为某方法的一部分,或者调用多个方法。在面向对象应用程序中,需要多个方法的算法经常依赖多态性来充许单个操作的多种实现。”

小A:“多态性是方法调用关于依赖被调用的操作和调用接收者类的基本原则。”

大B:“是啊!比如,你也许关心当Java遇到表达式isTree()时,会执行哪个方法。这关键是看方法的依赖关系。”

小A:“喔。”

大B:“如果对象m是Machine类的实例Java会调用Machine。isTree()。如果m是MachineComposite的一个实例,Java会调用MachineComposite。isTree()。非正式地说,多态性意味着要为合适的对象调用合适的方法。很多设计模式都使用多态性,在某些情况下,多态性与该模式的目标紧紧相连。”

小A:“操作、方法、签名以及算法这四个概念很容易让人混淆。”

大B:“但是,搞清楚这些术语间区别将有助于我们描述一些重要的概念。”

小A:“是啊!”

大B:“操作,类似于方法签名,定义了服务的规范。当谈到许多方法可能会有相同的接口的时候,我们可以使用操作这个术语。当讨论方法查询规划的时候,我们可以使用签名这个术语。一个方法的定义包括方法签名、修饰符、返回类型以及方法体;而方法签名又包括方法名和参数列表。一个方法通常有一个方法签名,并实现一个操作。启动一个方法的常见方式是调用它。方法结束的常见方式是让它返回,但是对任务程序而言,当遇到不可处理的异常时,任何方法都会停止执行。算法是一个接收输入并产生输出的过程。方法也接收输入、产生输出,另外它还包含一个过程化的方法体,因此常常有人将方法体看作是一个算法。然而,一个算法的过程可能会涉及很多操作和方法,也可能仅仅是另外一个方法的一部分。算法这个术语最好是在谈到产生某个结果的过程时使用。很多设计模式都涉及到把一个操作分散到几个类中去。因而我们可以说这些模式依赖于多态性,即具体调用哪个方法依赖于收到调用的对象的类型。不同的类可以用不同的方式来实现同一个操作。换句话说,Java支持多态性机制。”

同类推荐
  • 微软360度

    微软360度

    本书是由微软总部华人协会组织编写的第二本书,是《微软360度——企业和文件》一书的姐妹篇,本书将着重向你呈现微软总部的华人专家是如何一步一步地走向成功的及在微软总部成功的心路历程,以及如何应对挑战,揭示了微软成功的最重要秘密之一——人才至上,读者读后收获更多的是这些成功人士的成功经验,从而为自己的成功做出更好的规划。就让我们一起通过此书来看看微软公司人才至上管理的方方面面,聆听微软的心声,感觉微软的脉动吧。
  • 综合应用软件设计

    综合应用软件设计

    本书是为计算机、信息管理等相关专业高年级本科生在开设相关课程时所编写的一本教学参考书,它将全面指导学生学习、熟悉和运用当今被广泛采纳的一些主流技术去进行综合应用软件设计的有效实践。
  • 创业在微软

    创业在微软

    身处软件巨擘微软之中,何来“创业”二字?本书详尽勾勒了微软亚洲工程院(ATC)的成长历程,披露了工程院人在“创业”过程中不为人知的种种酸甜苦辣,生动展现了工程院的独特文化,并从另一个角度展现了其领袖人物张宏江博士的心路历程和管理思想。
  • 计算机网络技术与应用

    计算机网络技术与应用

    本书共8章,系统地介绍了计算机网络的发展和基本原理体系结构、局域网、广域网、网络服务、网络安全、典型网络的结构特点等内容。除第8章外,其他各章都附有练习题。为了加强学习效果,本书围绕知识点的典型性,精选了6个实验。此外,在本书的第8章,我们综合各章知识设计了“办公局域网组建设计”和“中小型企业局域网组建设计”这两个常用的计算机网络技术应用实例,供学生学习和参考。本教材适合作为本科非计算机专业学生的计算机网络教材。
  • 不懂PowerPoint就当不好经理

    不懂PowerPoint就当不好经理

    经理人如何用PowerPoint,来规划部门的发展,如何用PowerPoint来表达自己的经营主张?本书为各类经理人提供了从入门到提高,从原理到实战的一系列知识,相信本书将让演示文稿为经理人的管理效能加分!
热门推荐
  • 东周列国志

    东周列国志

    《东周列国志》是明代著名白话历史演义小说,以春秋五霸和战国七雄为主线,描写了西周末年到秦统一六国五百多年间的璀璨历史,其场面之宏大,跨度之久,事件之复杂,人物之多,描绘之深刻,后世史书只能望其项背。一个个以时间为顺序串联的列国故事,把上起治国、强军、富民之道,下至为人、做事、相处之策兼包并蓄,成为后世评判是非成败的标准和榜样,至今依然影响深远。
  • 霸气冲天系列5

    霸气冲天系列5

    杀人有罪吗?当你的命运掌握在别人手里的时候,当你带着不凡的使命去杀人的时候,当你不杀人便被别人杀的时候--你不杀人,便即意味着死亡,意味着有罪……
  • 腹黑魔尊独宠废材九小姐

    腹黑魔尊独宠废材九小姐

    前世的意外死亡,今朝的穿越,让袁月影倍加珍惜生命。在这片强者为尊的世界,她不会轻易认输。他,一界之王,冷傲不羁,可冷漠的他却为了她心乱……遇见他,她就好像已经注定了这一世的缠绵缱绻……某剧情片段:袁月影对着某人道:“我不会轻易的死去,今生我要活的比任何人潇洒!”某人轻哼“小东西,口气还挺大。”“管你什么事,你别靠我那么近!”袁月影不满道。他的气息萦绕在她耳边,让她有些心慌。
  • 穿越异事录

    穿越异事录

    拥有传说中的“运势”可以任意穿越历史受雇于人夺宝、暗杀上下五千年璀璨文化留下多少足迹?滚滚历史长河之中除了惊险刺激的冒险是否还有宿命中的爱情?
  • 问情飞仙

    问情飞仙

    修行,不为成仙,不为除魔,只为将你复活……升仙路封,中州动荡,尸王出世,上古妖魔破封,魔尊消失,妖皇乱世,这背后到底有着什么阴谋……伴侣身死,身世成迷,修行到最后,到底成仙还是入魔,救伴侣还是护中州……
  • 魂不归

    魂不归

    号为逆天,我自反叛。十岁便破杀戒的他,怎会生出那样一副仁慈的心肠?脱尘绝俗,身在天家。看似弱不禁风的她,怎会拥有那种近乎偏执的毅力?惊世鬼才,却是庶出。向来与世无争的他,怎会落得那个身首异处的下场?仁心、倾国,天际两颗最耀眼的星辰,偏偏处于异端,难道此生注定要擦肩而过,亦或是会发生更惨烈的碰撞?空旷寂寥的原野上,少年的头颅兀自流泪歌唱。一曲轮回千行泪,情至深处魂不归。魂,向何处归?
  • 冥域战神

    冥域战神

    公元1030年,那一段发生的故事被历史所遗忘,那时候天下大乱,魔界冥神即将破印重生;生灵涂炭,仙界无人能与魔王冥神拼死一战。当然,自古邪不胜正,魔妖横行,自然也有降魔之人。看茅山术士陈渝如何打败冥神称霸三界。而这样强大的存在自然也会有柔情一面,自然也会被情所困!看陈渝如何抱得美人归吧!
  • 异世剑神重生

    异世剑神重生

    一位剑客,因为一场车祸夺走了他宝贵的生命,而阴差阳错的来到了这个以武为尊的世界,在这里狂虐各种天才,扮猪吃老虎,为了红颜努比天,为了保护之人,不断变强,最终成为一代剑神
  • 混沌修罗猛士录

    混沌修罗猛士录

    一个混乱的时代,一群野性未褪的少年,一场有关修罗场荣耀的残酷角逐,一部异能暴走的演绎,肆意挥洒下的热血篇章,曾拥有过短暂的年少轻狂,你我是否登顶最强?
  • 腹黑王爷:紧追不舍

    腹黑王爷:紧追不舍

    不是吧,不就是回家的时候公交车出事了,居然穿越了!要不要这么狗血?不就是不小心看到某男正在沐浴嘛,至于这样紧追不舍嘛?某女:“大爷,我都说了我不是故意的了,能不能不要再追了?”某男邪笑不语,天哪,这是什么世道啊!某男笑着说:“女人,你是逃不掉的!”