一、对象模型

      在ruby程序中,对象仅仅是其大世界的一个公民而已,除了对象还有其他语言构件,比如类(class)、模块(module)以及实例变量(imstance variable)等,元编程操控的就是这些语言构件。所有语言构件存在于其中的系统称为对象模型,它是ruby的灵魂。

      (1)对象由一组实例变量和一个类的引用组成

      (2)对象的方法存在于对象所属的类中(从类的角度,它们叫做实例方法)

      (3)类本身是class类的对象。类的名字不过是一格常量而已

      (4)class类是module的子类,一个模块基本上是由一组方法组成的包。类除了具有模块的特性之外,还可以被实例化(通过new()方法)及被组织为层次结构(通过它的superclass()方法)

      (5)常量像文件系统一样,是按照树形结构组织的。其中模块和类的名字扮演目录的角色,其他普通的常量则扮演文件的角色

      (6)每个类都有一个祖先链,这个链从自己所属的类开始向上直到BasicObject类结束

      (7)当调用一个方法时,ruby首先向右一步来到接收者所属的类,然后一直向上查找祖先链,直到找到该方法,或者达到链的顶端为止

      (8)每当类包含一个模块时,该模块会被插入到祖先链中,位置在该类的正上方

      (9)当调用一个方法时,接收者会扮演self的角色

      (10)当定义一个模块(或者类)时,该模块扮演self的角色

      (11)实例变量永远都被认定为self的实例变量

      (12)任何没有明确指定接收者的方法调用,都当成是调用self的方法



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值