Ruby – クラス~initialize

基本

Rubyのクラスのコンストラクターはinitialize()

initialize()ではなくインスタンスメソッド内でプロパティーを定義することもできる。

ただしこの場合には、プロパティーが定義されるメソッドをプロパティーが参照される前に読んでおかなければならない(そうしないと演算などで未定義でエラーになる)。

なので、普通はインスタンス生成時に自動的に呼ばれるinitialize()内でプロパティーを定義するのが安全。

オーバーロード不可

異なる引数のコンストラクターを意図してオーバーロードすることはできない。

上記のコードの場合、後の方で定義したコンストラクターは使える。

引数のパターンを変えたいときは、デフォルト引数可変長引数を用いるとよい。

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です