21. Örnek Değişkenler

Örnek değişken @ ile başlayan bir ada sahiptir ve etki alanı self nesnesi ile sınırlıdır. Aynı sınıfa dahil olan aynı iki nesne için iki değişik örnek değişken tanımlamak mümkündür.

Örnek değişkenler, yazılımcı hangi yöntemi tanımlarsa tanımlasın bir nesnenin dışından değiştirilemez (Ruby'nin örnek değişkenleri hiçbir zaman genel olamaz). Genel değişkenlerde olduğu gibi, örnek değişkenler de başlangıç değeri atanmazsa nil değerine sahip olurlar.

Ruby'de örnek değişkenleri bildirmeye gerek yoktur. Bu durum nesnelerin yapısına esneklik kazandırır. Aslında, her örnek değişken, nesnedeki ilk kullanımında kendiliğinden oluşturulur.

ruby>class ÖrnekDeneme
    |    def set_foo(n)
    |       @foo = n
    |    end
    |    def set_bar(n)
    |       @bar = n
    |    end
    | end
   :set_bar
ruby> i = ÖrnekDeneme.new
   #<ÖrnekDeneme:0x000055e097eaf768>
ruby> i.set_foo(2)
   2
ruby> i
   #<ÖrnekDeneme:0x000055e097eaf768 @foo=2>
ruby> i.set_bar(4)
   4
ruby> i
   #<ÖrnekDeneme:0x000055e097eaf768 @foo=2, @bar=4>

i'nin set_bar yöntemi çağrılmadan @bar'ın hiçbir değer belirtmediğine dikkat edin.