rubyでのクラスメソッドとインスタンスメソッド

1071 ワード

クラスメソッドとインスタンスメソッド
インスタンスメソッドは最も一般的なメソッドです.オブジェクト(インスタンス)があると仮定すると、そのオブジェクトを受信者とする方法をインスタンスメソッドと呼ぶ
#       
p "10, 20, 30, 40".split(",")
# "10, 20, 30, 40”   String     , split   String             

p [1, 2, 3, 4].index(2)
#  [1, 2, 3, 4]   Array     , index   Array            

Time.now.to_s => "2013-03-18 03:17:02 +900"
# Time.now   Time     , to_s   Time             (to_s              )

#   (Object)
obj = Object.new 
#    (String) 
str = "Ruby"
#   (Float)
num = Math::PI  

p obj.to_s  #=> "#<0x07fa1d6bd1008>"
p str.to_s  #=> "Ruby"
p num.to_s  #=> "3.141592653589793"

受信者がオブジェクトではなくクラス自体である場合のメソッドをクラスメソッドと呼ぶ.
  • 類方法の書き方:
  • 類名メソッド名new
  • クラス名::メソッド名Array::new
  • #      
    Array.new  
    #       , new    Array    ,     
    
    File.rename(oldname, newname) 
    # rename     File    ,     。
    
    class HelloWorld  # hello       
      def self.hello(name)
        puts "#{name} said hello." 
      end
    end