如何在ruby中访问类方法和实例方法?

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)

现在完全混淆所以告诉我这个

nkm*_*nkm 0

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​​ 对象模型,Dogconstant指向类的实例Class。每当向 Dog 添加一个类方法时,Metaclass都会在类层次结构中添加一个名为 的新类来保留该类方法。