こんにちは。たいら(@tairaengineer2)です。
この記事では、 Rubyでインスタンスを新規作成されたときのみ自動で実行されるinitializeメソッドについて
- initializeメソッドとは
- initializeメソッドを使ったサンプルプログラム
と、この記事で丁寧に解説していきます。
前提条件:実行環境について
実行環境は以下の通りです。
OS | Windows10 |
---|---|
Rubyのバージョン | 2.6.6 |
Rubyのインストールは、下の記事をご参考ください。
initializeメソッドとは
initializeメソッドとは、インスタンスを新規作成したときのみ自動で実行されるメソッドです。
なので、例えばインスタンス変数の初期化処理をinitializeメソッドの中に入れておけば必ず初期化できる、という便利なメソッドです。
書き方サンプルは以下です。
1 2 3 4 5 |
class Sample def initialize() # 処理 end end |
initializeメソッドには、下記のように引数も設定することができます。
1 2 3 4 5 |
class Sample def initialize(test1, test2) # 処理 end end |
initializeメソッドの注意点
initializeメソッドの注意点として、オーバーロードして複数定義することができません。
つまり、下記のような書き方はできません。
1 2 3 4 5 6 7 8 9 |
class Sample def initialize() # 処理 end def initialize(test1, test2) # 処理 end end |
複数のパターンでinitializeメソッドをしたい場合は、デフォルト引数を使いましょう。
デフォルト引数については、以下の記事をご参考ください。
では、次の章で実際に使ってみます。
initializeメソッドを解説するプログラムの概要
initializeメソッドを解説するプログラムでは、デフォルト引数を用いたinitializeメソッドを持っているクラス作成します。
そのクラスに対して
- 引数がない場合
- 引数がある場合
の2パターンで新規にインスタンスを作成し、initializeメソッドが実行されているのかを確認します。
Rubyサンプルプログラム
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
# initializeメソッドサンプルクラス class InitializeSample def initialize(name = "名無し") puts "■initializeメソッドが実行されました" @name = name end def greeting puts "こんにちは、#{@name}さん" end end # 引数がない場合 noarg = InitializeSample.new noarg.greeting # 引数がある場合 witharg = InitializeSample.new("田中") witharg.greeting |
実行結果
Rubyプログラムを実行するやり方は、以下の記事をご参考ください。
■initializeメソッドが実行されました
こんにちは、名無しさん
■initializeメソッドが実行されました
こんにちは、田中さん
指定した条件の通り、initializeメソッドが実行されていることを確認できました!
まとめ:initializeメソッドを使ってみよう!
以上がinitializeメソッドについての解説でした!
initializeメソッドは、インスタンスを新規に作成したときの初期化処理に最適なメソッドなので、ぜひ使ってみてください!
あなたのご参考になったのなら、とても嬉しいです(*´▽`*)
ではでは~(・ω・)ノシ
コメント