class Helo
def initialize(name="noname")
@name = name
end
def say
puts("Hello, " + @name + "!!")
end
end
helo = Helo.new("taro")こんな具合にして、インスタンスの@nameの値が変更できるか?というと、これはできません。もちろん、helo.@nameでもダメです。インスタンス変数には、直接外部からアクセスすることはできないのです。
helo.name = "hanako"
attr_accessor 変数の値の読み取り・書き換えを行うここでは、attr_accessor:nameとすることで、@nameの読み書きを可能にしていたのです。インスタンス変数を外部から利用できるようにしたい場合にはとても重宝する機能ですね。
attr_reader 変数の値の読み取りだけを行う
attr_writer 変数の値の書き換えだけを行う
※リストが表示されない場合
AddBlockなどの広告ブロックツールがONになっているとリストなどが表示されない場合があります。これらのツールをOFFにしてみてください。
class Helo attr_accessor:name def initialize(name="noname") @name = name end def say puts("Hello, " + @name + "!!") end end obj = Helo.new("花子") obj.say obj.name ="hanako" obj.say
次へ >> |