6
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

initializeメソッドについて

Last updated at Posted at 2023-12-08

Rubyで使用されるinitializeメソッドはどんな役割があるかまとめてみました。

initializeメソッドはクラスがnewメソッドでインスタンス化した時に一度だけ実行されるメソッドです。

引数として必要なデータを渡すことで、インスタンスの中にデータを取り込んだりむことができます。
データを渡さずに、インスタンス化と同時に実行したい処理があるときにもこのメソッドを使います。

-記述の方法-
class クラス名
  def initialize()
    # ここにインスタンス化と同時に実行したい処理を記述
  end
end

実際に記述してみましょう!

今回はCatクラスを作り、2匹の猫を設定しました。

class Cat
  def initialize(name)
    puts "実行されました"
    @name = name
  end
  def eat
    puts "美味しそうに#{@name}はご飯を食べました"
  end
end

tama = Cat.new("タマ")
mike = Cat.new("ミケ")

tama.eat
mike.eat
-実行結果-
実行されました
実行されました
美味しそうにタマはご飯を食べました
美味しそうにミケはご飯を食べました
なぜこの順番で結果が出力されたのでしょう?

最初にtama = Cat.new("タマ")が実行されたと同時にinitializeもメソッド内に定義されたputs "実行されました"が表示されます。

mike = Cat.new("ミケ")も同様にインスタンス化されたと同時にputs "実行されました"が表示されます。

次にtama.eatでCatクラス内で定義したeatメソッドが実行され、美味しそうにタマはご飯を食べましたが表示されます。

mike.eatも同様でeatメソッドが実行され、美味しそうにミケはご飯を食べましたが表示されます。

6
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?