2012年7月15日

Ruby容器

摘要: 所谓容器是指含有一个或多个对象引用的对象。在开始实现之前,我们需要决定如何在SongList对象中存储歌曲列表。目前有3个明显的选择:(1)使用Ruby的Array(数组);(2)使用Ruby的Hash(散列表);(3)自定义列表结构。数组类含有一组对象引用。每个对象引用占据数组中的一个位置,并由一个非负的整数索引来标识。可以通过使用字面量(literal),或显示地创建Array对象,来创建数组。字面量数组(literal array)只不过是处于方括号中的一组对象。a = [3.14159, "pie", 99]a.class ... 阅读全文

posted @ 2012-07-15 14:58 tim_sheng 阅读(721) 评论(0) 推荐(0) 编辑

Ruby变量

摘要: 每个变量保存一个对象的引用。person = "Tim"person.object_id ->938678person.class ->Stringperson ->"Tim"第一行代码,Ruby使用值“Tim”创建了一个String对象。这个对象的一个引用(reference)被保存在局部变量person中。接下去的快速检查展示了变量具备字符串的特性,它具有对象的ID,类和值。那么,变量是一个对象吗?在Ruby中,答案是“不”,变量只是对象的引用。对象漂浮在某处一个很大的池中(大多数时候是堆,即heap中),并由变量指向它们。pers 阅读全文

posted @ 2012-07-15 14:41 tim_sheng 阅读(399) 评论(0) 推荐(0) 编辑

Ruby 访问控制

摘要: “protected”和“private”之间的区别很微妙,如果方法是保护的,它可以被定义了该方法的类或其子类的实例所调用。如果方法是私有的,它只能在当前对象的上下文中被调用--不可能直接访问其他对象的私有方法,即便它与调用者都属同一个类的对象。Ruby和其他面向对象语言的差异,还体现在另一个重要的方面。访问控制实在程序运行时动态判定的,而非静态判定。只有当代码试图执行受阻的方法,你才会得到一个访问违规。有两种不同的方式定义函数的访问级别首先class MyClass def method1 #default is 'public' #... end protected #su 阅读全文

posted @ 2012-07-15 14:13 tim_sheng 阅读(367) 评论(0) 推荐(0) 编辑

导航