登陆注册
8183300000148

第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支持多态性机制。”

同类推荐
  • 信息技术教育大全-操作系统大全

    信息技术教育大全-操作系统大全

    本书系统介绍说明了有关电子信息系统及操作系统等知识,希望对该信息技术有需求的读者能够从中得到帮助。
  • 计算机与人工智能(科学新知丛书)

    计算机与人工智能(科学新知丛书)

    本书是专门为中小学生编写的科普读物。全书共分八个部分,分别就计算机诞生的历程,计算机的种类、构造、作用及其发展趋势等方面进行了详尽的论述,全书论述深入浅出,行文活泼流畅。为本书的主要读者——广大的中小学生朋友认识计算机、了解计算机和掌握计算机提供了一把钥匙,是新时期中小学生开展素质教育不可多得的科普读物,中小学生家长及教师阅读此书也能从中获得有益的启示和感悟。
  • 学校计算机实用技术

    学校计算机实用技术

    本书由杭州市上城区教育学院编著,他们邀请了众多信息技术教育教学的一线专家,认真细致地筛选了学校计算机应用方面的常见问题,提出了解决问题的具体操作方案,旨在帮助一线教育工作者解决可能面临的种种问题,为广大教师提供便捷服务。
  • 不懂PowerPoint就当不好经理

    不懂PowerPoint就当不好经理

    经理人如何用PowerPoint,来规划部门的发展,如何用PowerPoint来表达自己的经营主张?本书为各类经理人提供了从入门到提高,从原理到实战的一系列知识,相信本书将让演示文稿为经理人的管理效能加分!
  • 成为淘宝创业的超级毕业生

    成为淘宝创业的超级毕业生

    本书讲述如何通过淘宝创业将大学在校生打造成为“超级毕业生”。主要内容包括大学生从事淘宝创业的理论基础、学以致用的操作指南,以及可资借鉴的案例。书中的理念篇可供对创业教育感兴趣的高校教师参考;实战篇提出的“淘宝十二招”,操作简单,易学易用;案例篇讲述了十位成功在校创业大学生的故事,主要供学生参考。读完本书,相信凡是关注大学教育者或希望通过淘宝创业的大学生,皆能从中获得启发,对创业从无心变有心,从有心变行动,亲身投入或参与到这个伟大的事业中来。
热门推荐
  • 我有好感系统

    我有好感系统

    主角穿越到魔物大陆,得到了好感系统...于是,他疯狂的刷各个大佬的好感度。“历古大师,你给我打造一把天下最强的武器,对,我明天就要。”“万炼大师,你这瓶药剂喝着有点苦,效果也不达标,你是不是给我掺了水?快去给我炼制一瓶更好的来!”“黑印,明天带我去狩猎灭世黑龙,就是龙眠之地最强的那头,别给我出岔子!”...
  • 莽荡

    莽荡

    人族伊始,儒畏天命修身以矣,佛亦谓此身根本幻化,业不可逃,寿终有尽。独道欲长生不死,变化飞升,不信天命,不信业果,力抗自然,勇然何如哉?永德三十七年,紫德王秦坚降旨灭佛。虎狼之师,血染空门。金刚怒目,梵音消散,诸佛退避。仅半月余,灭寺千座,焚经百万,还俗僧尼数十万。极乐西天梦已碎,漫天神佛尽低眉。至此千钧一发之际,北泰宇文氏修庙铸佛,广济沙门。一代雄主宇文九州携佛师真谛于秦岭之巅迎战紫德太子秦广与大儒崔洪。真言梵音不绝于耳,法印咒术层出不穷。方圆百里,异象四起。天雷之下莫有不从,秦广险胜一筹。此战之后,秦岭以南儒道正一,秦岭以北佛道本源。
  • 菜根谭(插图版)

    菜根谭(插图版)

    《菜根谭》是明代万历年间隐士洪应明的一部语录体著作,集儒、释、道三家之思想精髓,涉及修身、处世等各方面内容,雅俗共赏,受到了文人学者和市井阶层的广泛欢迎,对后世影响深远。本书按照为学励志、齐家治国、为人处世、修身养性等若干主题,对《菜根谭》原作进行重新编排,加以现代文翻译和评析,并精心选取任伯年、吴观岱、程璋、徐悲鸿、陈少梅等著名画家的作品作插图。希望读者能在文与画的双重熏染中,获得精神上的升华。"
  • 画室有诡

    画室有诡

    江北大学美术系学生,牛欣欣在为海外贸易公司老总吴宇翔画壁画期间,屡次要款未果。然而有一天在吴宇翔家中,牛欣欣看到吴宇翔突然接到了一个神秘电话,接着收到了一个神秘的盒子。第二天牛欣欣接到吴宇翔的电话,令牛欣欣十分诧异的是,吴宇翔居然爽快地付清了所有款项。可在牛欣欣拿到钱的当天晚上,吴宇翔上吊自杀,盒子神秘失踪,并留下一张神秘的照片。同时江北大学第三校舍开放的当天下午,美术系方晓彤在画室用铅笔刺向自己的喉咙,诡异自杀。一连串诡异所思的事件,神秘的死亡请柬,牛欣欣发现,自己被卷入了一场凶杀风波,同时牵扯出了十几年前的两件无头公案。命运的天秤到底会偏向哪边?
  • 领主大人请自重

    领主大人请自重

    剑与魔法的交织、神与地狱的恶战、正与邪的对立、权贵与平民的冲突,是永恒不变的旋律。就是在这样有序中又略带几分混乱的世界上,一个如何传播爱与光明的故事。
  • 圣光精灵当管家

    圣光精灵当管家

    白樱,又名樱葳蕤,万年前大地孕育出的精灵,既可呼风唤雨,又能救死扶伤,生来为了辅佐伟大的君主蓝祈,“我为你而生,为你而死。”蓝祈淡然一笑,“不要为了他人而活,我要你,永远是你自己。”那一别,从此,世上再无蓝祈。万年后,当白樱再一次遇到蓝祈,他发誓会贯彻自己的诺言,“我为你而生,为你而死。”
  • 全能修炼宝典

    全能修炼宝典

    陈飞偶得神书,做任务得经验,换技能点换熟练度。用技能点学技能,刷技能熟练度涨属性。逍遥都市任我行,没有什么不是一个技能点学不会的,如果有的话,那就两个!
  • 七宿游龙传

    七宿游龙传

    千年易逝、窨王窥伺;紫月当空、血雨撒世;黑衣铺展、天下溃烂;茫茫圣元,苍苍七宿;星宿合璧,谁与争锋。
  • 天行

    天行

    号称“北辰骑神”的天才玩家以自创的“牧马冲锋流”战术击败了国服第一弓手北冥雪,被誉为天纵战榜第一骑士的他,却受到小人排挤,最终离开了效力已久的银狐俱乐部。是沉沦,还是再次崛起?恰逢其时,月恒集团第四款游戏“天行”正式上线,虚拟世界再起风云!
  • 天行

    天行

    号称“北辰骑神”的天才玩家以自创的“牧马冲锋流”战术击败了国服第一弓手北冥雪,被誉为天纵战榜第一骑士的他,却受到小人排挤,最终离开了效力已久的银狐俱乐部。是沉沦,还是再次崛起?恰逢其时,月恒集团第四款游戏“天行”正式上线,虚拟世界再起风云!