【Ruby】セッターとゲッターを自前で書かなくてもアクセサーメソッドで属性にアクセスできる
隣のテーブルの女子大生の会話(イケメンの見定め方について)を聞きながら作りながら学ぶRuby入門 第2版を進めています。
クラスを作って、インスタンスを作る。
そんで、
インスタンス.年齢
みたいな感じでインスタンスの持ってる属性(今回だとnameとage)にアクセスしてそれを変更したり、表示したりしたい。
セッター(変更するためのメソッド)やゲッター(読み込むためのメソッド)を自前で書く方法もあるけど、Rubyではattr_accessorというメソッドが用意されているので、それを使えば簡単にできるらしい。
class Tantei def initialize(name,age) @name = name @age = age end attr_accessor :name, :age end shin = Tantei.new('工藤新一',17) # 表示 puts "氏名:#{shin.name}, 年齢:#{shin.age}" # 氏名、年齢の変更 shin.name = '江戸川コナン' shin.age = 7 puts "氏名と年齢を変更しました。" # 再度表示 puts "氏名:#{shin.name}, 年齢:#{shin.age}"
(実行結果)
氏名:工藤新一, 年齢:17
氏名と年齢を変更しました。
氏名:江戸川コナン, 年齢:7
江戸川コナンって改めてすごい名前だな。