🚂
Rubyの initialize メソッドについて
initializeメソッド
- Rubyの
コンストラクタ
(オブジェクト生成時に自動で呼び出される初期化処理のメソッド)- コンストラクタの対義語は、
デストラクタ
(オブジェクトを削除するときに自動で呼び出されて後処理をするメソッド)
- コンストラクタの対義語は、
- インスタンス変数(@name, @price)は
private
扱いとなるため、クラス外から呼び出すにはgetter/setter
が必要- Rubyでは
attr_accessor
というメソッドを使えばOK - https://docs.ruby-lang.org/ja/latest/method/Module/i/attr_accessor.html
- Rubyでは
- 引数の書き方による違い
- initialize(
name:, price:
)- 引数を渡すかは任意
- キー情報を指定しなければいけない
- initialize(
name, price
)- 引数を2つ渡すことが必須
- キー情報を指定しなくても順番に認識される
- initialize(
- initializeメソッドはオーバーロードではなくオーバーライド
- オーバーロード: 引数や戻り値が異なる、同名のメソッドを複数定義することを指します。
- オーバーライド: 子クラスで親クラスと同名のメソッドを定義した場合、子クラスのメソッドのみ有効となります。
- 親クラスの同名メソッドを呼び出したいときは、
super
メソッドを使って呼び出す
Discussion