紙一枚の積み重ね : ruby / attr_accessorの使い方
Rubyを学習する上で「attr_accessorて何者なの。。。。」と思ったのでメモ
目的
attr_accessorの成り立ちを理解すること!
アジェンダ
1.Personクラスの準備(前準備)
2.メソッドを準備
3.reader/writerメソッドによるインスタンス変数の定義
4.attr_reader/attr_writerによるインスタンス変数の定義
5.attr_accessorによるインスタンス変数の定義
6.インスタンス変数をメソッドから呼び出す方法
#######################################################
1.Personクラスの準備(前準備)
class Person
end
person = Person.new
person.name # => no method error
#nameというメソッドは使われていないので現段階ではmethodエラーが表示される
#######################################################
2.メソッドを準備
class Person
def name
@name # simply returning an instance variable @name
end
end
person = Person.new
person.name # => nil
person.name = "Dennis" # => no method error
#ここで初めてgetter、setterメソッドのうちgetterメソッドが出てきます。(C#ではgetter、setterとの名称ですが、rubyではwritter,readerメソッドというのですね。。。)
#setterメソッド : インスタンスに値を格納
#getterメソッド : インスタンス変数の値を読み込み
#######################################################
3.reader/writerメソッドによるインスタンス変数の定義
class Person
def name
@name
end
def name=(str)
@name = str
end
end
person = Person.new
person.name = 'Dennis' # : setterメソッド(writerメソッド)
person.name # => "Dennis" # : getterメソッド(readerメソッド)
#######################################################
4.attr_reader/attr_writerによるインスタンス変数の定義
class Person
attr_reader :name
attr_writer :name
end
#とても簡単にgetter,setterメソッドを定義できる。素敵。。。。。
#######################################################
5.attr_accessorによるインスタンス変数の定義
class Person
attr_accessor :name
end
person = Person.new
person.name = "Dennis"
person.name # => "Dennis"
#さらに簡単に。。。。。。。。最高。。。。。。。。。。。。
#######################################################
6.インスタンス変数をメソッドから呼び出す方法
class Person
attr_accessor :name
def greeting
"Hello #{@name}"
end
end
person = Person.new
person.name = "Dennis"
person.greeting # => "Hello Dennis"
#attr_accessorでインスタンス変数を設定したら他の関数からも呼べます。
#######################################################
end
#######################################################
この記事が気に入ったらサポートをしてみませんか?