SSP*_*SSP 6 ruby ruby-on-rails ruby-on-rails-3
通过搜索一些博客和文章,我发现Ruby中的每个类本身都是一个实例Class
.类方法和实例方法之间的差别是什么,ruby允许创建对象的对象?
我尝试做这样的事情,但仍然无法理解
str = Class.new(String)
=> #<Class:0xb5be1418>
my_str = str.new()
=> ""
my_str = str.new("hello")
=> "hello"
my_str.class
=> #<Class:0xb5be1418>
str.class
=> Class
Run Code Online (Sandbox Code Playgroud)
现在完全混淆所以告诉我这个
class Dog
# Returns the number of dog objects created using this class
def self.count
end
# Returns name of the dog object
def name
end
end
Run Code Online (Sandbox Code Playgroud)
从上面的例子来看,通用方法(与所有狗对象相关)被称为class method
.
调用与特定狗(狗对象)相关的方法instance method
。
根据 ruby 对象模型,Dog
是constant
指向类的实例Class
。每当向 Dog 添加一个类方法时,Metaclass
都会在类层次结构中添加一个名为 的新类来保留该类方法。
归档时间: |
|
查看次数: |
380 次 |
最近记录: |