Ruby中的 class method, instance method, singleton method/class

singleton method/class 从效果来说,两者没有什么区别

# class method
10.times{ |i| print("=")}
puts("class/instance method")
class MyClass   
   def MyClass.classMethod 
      puts( "This is a class method" ) 
   end 

   def self.classMethod3 
      puts( "This is a class method3" ) 
   end 

   def instaceMethod
      puts("instance method")
   end
end

def MyClass.classMethod2
  puts( "This is a class method2" ) 
end 

MyClass.classMethod
MyClass.classMethod2
MyClass.classMethod3
#MyClass.instaceMethod # undefined method

# singleton method
10.times{ |i| print("=")}
puts("singleton method")
aaa = MyClass.new
def aaa.test
  puts "singleton method"
end

class << aaa 
   def test2 
      puts( "singleton class method" ) 
   end 
end

aaa.test
aaa.test2
aaa.instaceMethod
# aaa.classMethod # undefined method
aaa.class.classMethod

你可能感兴趣的:(ruby)