##クラスメソッドとは
クラスに関連が深いものの、一つ一つのインスタンスに含まれるデータを使わないメソッド
#####クラスメソッドを定義する方法1
class クラス名
def self.クラスメソッド
#クラスメソッドの処理
end
end
#####クラスメソッドを定義する方法2
class クラス名
class << self
def クラスメソッド
#クラスメソッドの処理
end
end
end
クラスメソッドを呼び出す場合は以下のようにする
クラス名.メソッド名
class Food
def initialize(name)
@name = name
end
#self.をつけるとクラスメソッドになる
def self.create_foods(names)
names.map do |name|
Food.new(name)
end
end
#インスタンスメソッド
def eat
"I will eat an #{@name}."
end
end
names = ['apple', 'octopus']
#クラスメソッドの呼び出し
foods = Food.create_foods(names)
foods.each do |food|
puts food.eat
end
#=> I will eat an apple.
# I will eat an octopus.
#参照
プロを目指すためのRuby入門