Ruby对象模型小结

  • 对象是由一组实例变量和一个类的引用组成。
  • 对象的方法存在于对象所属的类中(从类的角度看,它们叫做实例方法)。
  • 类本身是Class对象。类的名字不过是一个常量而已。
  • Class类是Module的子类,一个模块基本上是由一组方法组成的包。类具有模块的特性,但可以被实例化(new),被组织为层次结构(通过它的superclass方法)。
  • 常量依据模块名和类名来索引,类似于目录树。
  • 每个类都有一个祖先链,从自己所属的类开始,追溯到BasicObject类才结束。可以用Class.ancestors方法查看。
  • 调用某个方法时,Ruby先索引到对象所属的类,遍历其祖先连,直到找到该方法或者到链顶端为止。
  • 当某个类去包含某个模块时,该模块在该类的祖先链中的位置恰好在该类的正上方。
  • 当调用一个方法时,接收者(调用者,即实例对象)会扮演self的角色。
  • 当定义一个模块(或者类)时,该模块扮演self的角色。
  • 实例变量永远都被认为是self的实例变量。
  • 任何没有明确指定接收者的方法调用,都被当成是调用self的方法。                                    ——摘自《Ruby 元编程》
原文地址:https://www.cnblogs.com/vman/p/RubyObjectModel.html