Rubyを学んでいると、変数名の前に@
がつくものを見かけることがあります。
これらは「インスタンス変数」と呼ばれ、クラスやオブジェクトの内部で重要な役割を果たします。
本記事では、このインスタンス変数についてわかりやすく説明します。
インスタンス変数とは?
インスタンス変数は、クラスやオブジェクトの内部で定義され、クラスのメソッド間で共有される変数です。
インスタンスごとに異なる値を持つことができ、クラスの外部からは直接アクセスできません。
インスタンス変数は、クラスの各オブジェクトごとに固有のデータを保持するために使われます。
インスタンス変数の特徴
@
がつく変数は、そのクラスのインスタンスに属する変数です。- インスタンスごとに異なる値を持つことができます。
- 初期化されるまでは
nil
です。値を代入しない限り、インスタンス変数はnil
という値を持っています。 - クラスのメソッド間で共有可能。同じオブジェクト内であれば、異なるメソッドからでも同じインスタンス変数にアクセスすることができます。
インスタンス変数の例
以下は、簡単なUser
クラスを使った例です。
class User
def initialize(name)
@name = name # インスタンス変数 @name の初期化
end
def say_hello
puts "Hello, #{@name}!" # @name を使用
end
end
user = User.new("Alice")
user.say_hello # => "Hello, Alice!"
この例では、@name
がインスタンス変数です。
User
クラスのオブジェクトごとに異なる値を持つことができ、initialize
メソッドで初期化された値がsay_hello
メソッドで使用されています。
まとめ
インスタンス変数は、クラスやオブジェクト内でデータを保持し、メソッド間で共有するために非常に便利です。
クラスごとに独自のデータを保持しながら、外部に直接公開することなく内部で管理できるため、オブジェクト指向プログラミングではよく使われます。
Rubyでプログラムを作成する際、インスタンス変数の仕組みを理解しておくと、データの管理がスムーズに行えるようになります。
最近のコメント