Ruby元编程笔记 - 对象模型

2015-07-15  本文已影响84人  Kumiko
Tips
类自身也是对象
"hello".class #=> String
String.class  #=> Class
Class.class  #=> Class

String.ancestors
  #=> [String, Comparable, Object, Kernel, BasicObject]
Object.superclass
  #=> BasicObject

Class.ancestors
  #=> [Class, Module, Object, Kernel, BasicObject]

self

顶级上下文:

self        #=> main
slef.class  #=> Object

当开始运行ruby程序的时候,解释器会创建一个名为main的对象最为当前对象,它被称为顶级上下文(top level context)是因为这时处在调用堆栈的顶层:这时要么还没有调用任何方法,要么调用的方法都已经返回了。P.S. Ruby的main对象和C系的main函数没有关系。

private
  1. 如果调用方法的接收者不是自己,则必须指明一个接收者;
  2. 私有方法只能被隐含接收者调用;

所以,不能明确指定一个接收者调用一个私有方法,即每次调用私有方法只能用隐含的接收者self调用。

所以与C系语言不同的是,子类可以调用基类的私有方法。

上一篇 下一篇

猜你喜欢

热点阅读