Ruby – クラス – アクセスメソッド

概要

Rubyのインスタンス変数(プロパティー)は、クラス内に隠蔽(encapsulate)されていて、外部からの参照・変更はできないが、アクセスメソッドを使うことで、外部からの参照・変更が可能となる。

attr_reader

attr_readerメソッドを定義すると、そのインスタンス変数を直接参照できるようになる。ただし値のセットはできない。

attr_writer

attr_writerメソッドを定義すると、そのインスタンス変数に直接値をセットできるようになる。ただし参照はできない。

attr_accessor

attr_accessorメソッドを定義すると、そのインスタンス変数の読み書きが直接できるようになる。

無定義での利用

各アクセスメソッドは、initialize()などでインスタンス変数に対してオブジェクトの実態を定義しなくても機能する。ただし無定義のままではnilのままなので、利用時にエラーとなることがある。

initialize()などで明示的に定義するのが望ましい。

複数定義

各アクセスメソッドで','で区切って複数のシンボルを並べることができる。

 

 

コメントを残す

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