記事の内容
この記事では、Rubyのインスタンス変数について説明します。
インスタンス変数とは何か?
インスタンス変数とは、クラスの内部で最も使われる変数の一つです。
インスタンス変数とは同じインスタンス(同じオブジェクト)の内部で共有される変数です。
インスタンス変数の変数名は、必ず「@」で始めます。
また、インスタンス変数はインスタンス内で共通して使用することが出来ます。
インスタンス変数の定義方法と使い方
@で始まっている、@name、@height、@weightは全てインスタンス変数です。
displayメソッドを見て貰えればわかりますが、クラス内では、どこからでもインスタンス変数を参照することができます。
そして、catインスタンスとdogインスタンスの@name、@height、@weightは、別物で、それぞれが独立しています。
便利なattr_accessorの使い方
上のソースコードでは、「値をセットするメソッド」と「値を取得するメソッド」の両方が定義されています。
Rubyではattr_accessorを使えば、インスタンス変数の定義と同時に、それらのメソッドを簡単に定義することができます。
下記のコードを上記のコードと比較すると、コードが簡潔になっていることがわかります。
まとめ
この記事では、インスタンス変数とattr_accessorの使い方を紹介しました。
繰り返しにはなりますが、catインスタンスとdogインスタンスが保持する値は、それぞれが独立しているということを確認しておいて下さい。
Good luck for your engineer life!