• 博客访问: 1061036
  • 博文数量: 526
  • 用 户 组: 普通用户
  • 注册时间: 1970-01-01 08:00
个人简介

鏆傛棤浠嬬粛

文章分类

全部博文(526)

文章存档

2007年(3)

2006年(523)

我的朋友

发布时间:2006-02-28 20:03:38

第四章 容器,块和迭代器(2-2)实现迭代器Ruby迭代器就是一个简单的方法,它能调用代码块。第一眼看上去,Ruby中的块像C,Java,Perl中的块一样,但这只是表面--实际上Ruby的块是分组语句的一种途径,而不是习惯上的那种。[@more@]首先,块在源代码中紧挨着方法调用;并且和这个方法的最后一个参数(或者带圆括号的参数)写在同一行上。其次,这个块内的代码不会在解释器遇到时立即被执行,Ruby首先会记住这个块出现的上下文环境(局部变量,当前对象等),然后进入方法。魔术就从这儿开始了。在方法里面,这个块才会被yield语句调用执行,就......【阅读全文】

阅读(2377) | 评论(0) | 转发(0)

发布时间:2006-02-28 19:53:32

第四章 容器,块和迭代器(2-1) 一个自动点唱机只有一首歌恐怕不会太流行,所以我们需要建立一个歌曲目录和一个等待播放的列表。这都是容器的例子,一个包含若干个对其它对象引用的对象。 [@more@] 目录和播放列表都有类似的操作,增加歌曲,删除歌曲,返回歌曲列表等等。播放列表可能还需要别的方法,比如插入广告,记录累计播放时间等,我们将在后面考虑这些问题。现在,我们需要建立一个通用SongList类,以便在目录和播放列表中使用。容器在开始实现之前,我们要知道怎么在SongList对象中存储歌曲列表。我们有三个明显得选择:R......【阅读全文】

阅读(2052) | 评论(0) | 转发(0)

发布时间:2006-02-27 22:30:58

第三章 类,对象和变量(3-3)访问控制我们设计一个类的接口的时候,一个重要的问题是,我们应该向外界暴露多少内部实现,外部能访问我们的类有多少限制。如果过多的让外部访问内部的东西,可能增加了耦合,用户越来越依赖我们的类的内部实现,而不是逻辑接口。好消息是在Ruby内改变对象状态有个很容易的方式,就是调用它的方法。控制对方法的访问,你就能控制对对象的访问。一个好的小技巧是从不暴露能让你对象处于无效状态的方法。 Ruby提供了三种保护层次: [@more@]l l Public methods 任何人都可以调用,没有强制的访问控制。方法默认都......【阅读全文】

阅读(1367) | 评论(0) | 转发(0)

发布时间:2006-02-27 22:23:05

第三章 类,对象和变量(3-2)可写属性有时候你需要在外部对对象的属性进行设置。比如,一首歌的时长这个属性可能开始的时候只是一个估算的值(或许是从CD或MP3上采集的信息)。当第一次播放的时候,我们知道了它的真正时长,并且要把这个新值写回到Song对象中。 [@more@]在c++或者java中,我们可以用setter方法。class JavaSong { // Java codeprivate Duration _duration;public void setDuration(Duration newDuration) {_duration = newDuration;}}s = new Song(....);s.setDuration(length);在Ruby中,可以象其他变量一样访问一个对象的属......【阅读全文】

阅读(1898) | 评论(0) | 转发(0)

发布时间:2006-02-27 22:17:28

第三章 类,对象和变量(3-1) 看了前面我们谈论到的一些例子,你也许会怀疑ruby的面向对象特性是否属实,这章我们将会详细讲述这方面的内容。我们将会探讨在ruby中如何创建类和对象,并且讨论ruby比其他面向对象语言的一些更强之处。同时,我们也会部分实现我们数亿美元的产品:基于因特网的爵士和布鲁斯自动点唱机。 [@more@]经过几个月的工作,我们负责的研究人员决定我们的点唱机需要歌曲(songs),所以我们要在ruby中建立一个song类来表示现实中的歌曲。我们知道歌曲都有一个名字,演唱者,时长等,所以,我们的song对象也应如此。......【阅读全文】

阅读(2335) | 评论(0) | 转发(0)
给主人留下些什么吧!~~
留言热议
请登录后留言。

登录 注册