Rubyのオブジェクト指向プログラミングにおける**アクセサメソッド(accessor method)**とは、インスタンス変数へのアクセスを制御するためのメソッドです。インスタンス変数は通常外部から直接アクセスできないため、アクセサメソッドを使って安全かつ柔軟にアクセスを可能にします。
1. アクセサメソッドの種類
Rubyには次の3種類のアクセサメソッドがあります。
| メソッド | 機能 |
|---|---|
attr_reader |
読み取り専用(ゲッター)を定義 |
attr_writer |
書き込み専用(セッター)を定義 |
attr_accessor |
読み書き両方のアクセスを定義 |
2. なぜアクセサメソッドを使うのか
Rubyでは、インスタンス変数(例:@name)はクラスの外から直接参照できません。次のようなコードではエラーになります。
このような場合、アクセサメソッドを使うことで変数へのアクセスを可能にします。
3. 各アクセサメソッドの使用例
attr_reader(読み取り専用)
attr_writer(書き込み専用)
attr_accessor(読み書き可能)
4. アクセサメソッドを自分で定義することも可能
アクセサメソッドは、以下のように自分で手動で定義することもできます。
このように手動で書くこともできますが、attr_readerやattr_accessorを使うことで、より簡潔に記述できます。
まとめ
-
アクセサメソッドは、インスタンス変数へのアクセスを制御するために使う。
-
attr_reader、attr_writer、attr_accessorの3種類があり、それぞれ用途が異なる。
-
手動でゲッター/セッターを書く代わりに、アクセサメソッドを使うことでコードを簡潔に保てる。
生成日:2025/05/03