在Ruby中,使用class定义类时,实际上是在运行代码,这与java之类的静态语
言有很大的差别。
另外,类只是一个增强的模块,因此,任何适用于类的东西也
适用于模块。
* 注1:在类(或模块)定义时,类本身充当了当前对象self的角色。
result = class MyClass
self
end
result # => MyClass
-
注2:Ruby中总是存在一个当前对象self,与此类似,也总是存在一个当前类 (或模块)。每当通过class关键字来打开一个类时,这个类就成为当前类, 但是使用class关键字需要一个类的名字。 如果只有一个类的引用,需要用class_eval()方法打开这个类。
-
注3:类实例变量仅仅是属于Class类对象的普通实例变量。它仅仅可以被类 本身所访问,而不能被类的实例或之类所访问。
-
注4:类方法的实质,它们只是一个类的单件方法。
-
注5: 在类定义中使用一个类方法。
-
注6: eigenclass是一个对象特有的隐藏类,它是单件方法存在的地方。Ruby中可以使用如下语法进入eigenclass的作用域。
class << an_object
# do ...