- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
在我们熟悉的方法中,我们已经使用了方法的参数,如Move的方向,距离,持续时间等等。这些参数给你更多的控制,同样一个方法,由于参数的值不同,效果不一样。一个方法可以有好几个参数,每个参数都必须是某种数据类型,如:一个方法在被调用时它的参数(Parameter)必须被具体的值所代替。如上面的distance,duration分别被0.5meters,0.5seconds代替。一个方法可被多次调用,而每次调用时传进去的值都可能不一样。参数(Parameter)*********BeetleBand-v1.a2w*****第5讲:类、对象、方法和参数(1)
class,object,methodandparameter面向对象的程序设计(Object-orientedprogramming)中用类、对象和方法来组织程序。这种组织方法的好处:把一个大的程序分成若干个小的模块用和现实生活中一样的概念来设计程序容易发现程序运行错误类和对象(classANDobject)类(Class):是一个描述一类有共性的物体的概念,如汽车、桌子等。在Alice中,每一类用一个3D模型表示。对象(Object)符合一个类中所描述的共性的实际的物体称为这个类的一个实例(instance),如汽车的共性有:都有一个方向盘、四个轮子、有颜色、排气量等特点。但这仅仅是概念的描述,实际生产出来的汽车就是这个类的一个实例,我们把它叫做一个汽车对象。在Alice中,用第一个字母大写的单词表示类名。如Frog,Airport;而用全部小写的单词表示对象名。如frog,frog1,frog2,frog3Alice举例5.2场景级的方法(World-levelmethods)我们所熟悉的方法如move,turntoface,say都是属于某个对象的,这种方法我们称之为类级的方法(class-levelmethods)而我们的程序都存在于World.myfirstmethod中,我们称这个方法为场景级的方法。FirstEncounter_without_methods.a2wWorld.myfirstmethod太长带来的问题随着程序功能越来越多,代码也越来越长,如果我们把这些代码全部放到World.myfirstmethod中,则不仅不容易阅读,而且不容易发现错误。将myfirstmethod中的代码按照功能组织成几个相对独立的代码块,并分别给这些代码块起个名字。如:Doinordersurprise–spiderRobotandalienOnWheelssurpriseeachotherinvestigate–spiderRobotgetsacloserlookatalienOnWheelsreact–alienOnWheelshidesandspiderRobotsendsmessage解决方法逐步细化(StepwiseRefinement)在原来冗长的代码中分别找出相应的代码放到surprise、investigate、和react中。如:surpriseDoinorderalienOnWheelsmovesupalienOnWheelssays“whoareyou?spiderRobotsheadturnsaround在Alice中创建一个新的场景级方法首先选中World节点选中World节点的method点击createnewmethod举例FirstEncounter.a2w该例子中说明的概念:surprise是一个world-levelmethod,因为它定义在World节点中,而且其中包含对多个对象的操作(spiderRobot,alienOnWheels)surprise方法只有被调用(called/invoked)才能有效果。Myfirstmethod方法是被谁调用的?节省时间:写程序时我们可以反复调用这个方法,而不需要重新写一遍。写程序时在一个更高的层次上考虑(“thinkatahigherlevel”),如只要考虑surprise而不用考虑这么多:“alienmovesup;aliensays‘whoareyou‘;robotsheadturnsaround.“缩短代码长度:原来的代码中的若干行代码可以用这一行调用方法的代码代替。“thinkatahigherlev
文档评论(0)