インスタンス変数は`@'で始まる名前で指定される.インスタンス 変数とは`self'で参照されるオブジェクトに固有の変数である.同 じ種類のオブジェクトでも,異なるオブジェクトであればインスタ ンス変数の値はそれぞれ異なる.オブジェクトの外側からは直接イ ンスタンス変数の値を見たり,変えたりできないので,そうするた めにはなんらかのメソッドを経由する必要がある.初期化されてい ないインスタンス変数の値は`nil'である.
rubyのインスタンス変数は宣言が要らない.これはオブジェクトが 柔軟な構造を持っていることを意味している.実際,rubyのインス タンス変数は動的に増える.
ruby> class InstTest ruby| def foo(n) ruby| @foo = n ruby| end ruby| def bar(n) ruby| @bar = n ruby| end ruby| end nil ruby> i = InstTest.new #<InstTest:0x83678> ruby> i.foo(2) 2 ruby> i #<InstTest: @foo=2> ruby> i.bar(4) 4 ruby> i #<InstTest: @foo=2, @bar=4>