版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第5讲: 类、对象、方法和参数1class, object, method and parameter 面向对象的程序设计Object-oriented programming 中用类、对象和方法来组织程序。 这种组织方法的益处: 把一个大的程序分成假设干个小的模块 用和现实生活中一样的概念来设计程序 容易发现程序运转错误5.1 类和对象class AND object 类Class:是一个描画一类有共性的物体的概念,如汽车、桌子等。在Alice中,每一类用一个3D模型表示。 对象Object 符合一个类中所描画的共性的实践的物体称为这个类的一个实例 instance ,如汽车的共性有:都有一
2、个方向盘、四个轮子、有颜色、排气量等特点。但这仅仅是概念的描画,实践消费出来的汽车就是这个类的一个实例,我们把它叫做一个汽车对象。 在Alice中,用第一个字母大写的单词表示类名。如 Frog , Airport ; 而用全部小写的单词表示对象名。如 frog, frog1, frog2, frog3Alice举例举例5.2 场景级的方法World-level methods 我们所熟习的方法如 move, turn to face, say都是属于某个对象的,这种方法我们称之为类级的方法class-level methods 而我们的程序都存在于World.my first method中,
3、我们称这个方法为场景级的方法。 FirstEncounter_without_methods.a2w World.my first method太长带来的问题随着程序功能越来越多,代码也越来越长,假设我们把这些代码全部放到World.my first method 中,那么不仅不容易阅读,而且不容易发现错误。 处理方法将my first method中的代码按照功能组织成几个相对独立的代码块,并分别给这些代码块起个名字。如: Do in order surprise spiderRobot and alienOnWheels surprise each other investigate sp
4、iderRobot gets a closer look at alienOnWheels react alienOnWheels hides and spiderRobot sends message逐渐细化 Stepwise Refinement 在原来冗长的代码中分别找出相应的代码放到surprise、investigate、和react中。如:surpriseDo in order alienOnWheels moves up alienOnWheels says “who are you? spiderRobots head turns around在Alice中创建一个新的场景级方
5、法 首先选中World节点 选中World节点的method点击create new method 举例FirstEncounter.a2w该例子中阐明的概念: surprise 是一个 world-level method ,由于它定义在World节点中,而且其中包含对多个对象的操作(spiderRobot,alienOnWheels)surprise 方法只需被调用 called/ invoked 才干有效果。My first method方法是被谁调用的?本人定义方法的益处 节省时间: 写程序时我们可以反复调用这个方法,而不需求重新写一遍。 缩短代码长度:原来的代码中的假设干行代码可以用
6、这一行调用方法的代码替代。 写程序时在一个更高的层次上思索 “think at a higher level,如只需思索surprise 而不用思索这么多:“alien moves up; alien says who are you ;robots head turns around. “ “think at a higher level 实践上是一种封装,即用一个方法封装了详细的实现细节。本人改造Snowpeople例子Snowpeople_have_not _defined_methods.a2w5.3 方法的参数Parameter 举例:创作一个动画让甲壳虫乐队的每个成员按顺序分别上演
7、一个独奏曲。故事板Do together Do in order georgeBeetle move up georgeBeetle move down play soundDo together Do in order ringoBeetle move up ringoBeetle move down play soundDo together Do in order paulBeetle move up paulBeetle move down play soundDo together Do in order lennonBeetle move up lennonBeetle move
8、down play sound举例 该例子中阐明的概念 要想播放一段声音,首先要将声音文件导入Alice。 该例子仅仅实现了georgeBeetle演奏的动画 完成其它三个成员的动画能否需求同样制造三个方法? BeetleBand-v1.5.a2w一个更简约的方法察看BeetleBand-v1.5.a2w ,四个成员演奏的动画极其类似,只需演奏者和播放的音乐不同,其它动作类型和顺序都一样。能否可以仅通知Alice演奏者的名字和对应的音乐,它就可以自动按照这种动画步骤来做呢?也就是说,总结这4个类似的方法的共性,并将它们归一化为一个方法。 参数Parameter 在我们熟习的方法中,我们曾经运用
9、了方法的参数,如Move的方向,间隔,继续时间等等。这些参数给他更多的控制,同样一个方法,由于参数的值不同,效果不一样。 一个方法可以有好几个参数,每个参数都必需是某种数据类型,如: 一个方法在被调用时它的参数Parameter必需被详细的值所替代。 如上面的 distance, duration分别被 0.5 meters, 0.5 seconds替代。 一个方法可被多次调用,而每次调用时传进去的值都能够不一样。参数的种类Alice中提供了几种类型的参数: 定义带有参数的方法soloParameters: bandMember, musicDo together Do in order ba
10、ndMember move up bandMember move down play music 定义一个演奏的方法:solo,同时定义该方法的两个参数bandMember, music分别是Object类型和Sound类型。DemoBeetleBand-v2 该例子中阐明的概念 定义参数的方法:名字和类型 参数相当于占位符placeholder ,即在调用这个方法时,这里位置是需求指定详细值的。添加一个数值类型的参数添加一个数值类型的参数来表达每个演奏者跳起的高度。beetleBand-add_height_para.a2w不添加参数个数,但是用演奏者的身高来控制跳起来的高度。beetleB
11、and-control_height_with_who_para.a2w一个参数在方法中可以多次被用到作业5-1雪人的脱帽礼为Snowpeople虚拟世界参考文件:Snowpeople_have_not _defined_methods.a2w添加一个全局方法。这个名为flipHats的新方法,将在女雪人把头转向男雪人之后被调用。在flipHats方法中,男雪人用右手摘下帽子,然后优雅地把帽子指向女雪人,随后再把帽子戴到本人头上。在男雪人致完脱帽礼的时候,女雪人也会摘下帽子致脱帽礼。参考视频文件exercise-5-1.swf 作业5-2迷惑的袋鼠Kanga在内陆四处张望寻觅早餐,KangaA
12、nimals中的袋鼠kangaroo碰到了相当奇异的路标signRoads and Signs文件夹。Kanga盯着路标看了几秒,然后把头歪到一边显示她的困惑。接着Kanga向左跳了一些,然后转向路标,随后又向右跳了一些,再次转向路标,这样反复了好几次。创建一个程序来模拟这个漫画故事。编写hopLeft方法Kanga左转一些后跳起,然后转向路标和hopRight方法Kanga右转一些后跳起,然后转向路标。每次腾跃,Kanga都会离路标更近些。在World.my first method中,交替地调用hopLeft与hopRight方法两次让Kanga沿“之形跳向路标 参考视频:参考视频文件exercise-5-2.swf 分析创建一个新的虚拟世界,包含如下对
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 采购项目规范性审核制度
- 采购餐厅管理制度
- 重庆采购专家回避制度
- 2025年前台沟通练习卷
- Co3O4八面体结构掺杂工程学设计及其酸性析氧反应性能研究
- 第7章 相交线与平行线(知识+5大易错+)(知识清单)(解析版)-人教版(2024)七下
- 2026年投资经营合同(1篇)
- 2026年木工包工包料合同(1篇)
- 私人二手车转让合同(4篇)
- 2025年8月31日宿州市萧县事业单位遴选面试真题及答案解析
- 2023浙江工业大学机械原理习题答案
- 中国铁塔股份有限公司代维单位星级评定方案2017年
- 江苏如东1100MW海上风电项目陆上换流站工程环评报告
- 《安全运动促健康》课件
- 日管控、周排查、月调度记录表
- 江苏省无锡市江阴市2023年事业单位考试A类《职业能力倾向测验》临考冲刺试题含解析
- GB/T 5752-2013输送带标志
- GB/T 3146.1-2010工业芳烃及相关物料馏程的测定第1部分:蒸馏法
- GB/T 31087-2014商品煤杂物控制技术要求
- GB/T 30812-2014燃煤电厂用玻璃纤维增强塑料烟道
- 住院医师规范化培训临床技能结业考核体格检查评分表(神经外科)
评论
0/150
提交评论