🚂

Rubyの initialize メソッドについて

2021/07/05に公開

initializeメソッド

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

Discussion