前回はto_sメソッドを使って、各インスタンス変数の値を文字列表現として得られるようになりました。
続いて、nameとaddressという属性を個別に扱ったり、属性の値を変更できるようにメソッドを追加します。
属性を個別に扱うためにデータを読み出す操作をゲッター、属性の値を変更するためにデータを書き込む操作をセッターと言います。
それぞれの操作ができるようにゲッターメソッド、セッターメソッドを追加することもできますが、ゲッターとセッターを一度に定義できる便利なアクセサメソッドがRubyには用意されています。
Ruby学習メモ
アクセサメソッドを追加する
ゲッターとセッターを提供するアクセサメソッドはattr_accessorメソッドです。書き方はattr_accessorに対象となるインスタンス変数名を記述します。
attr_accessor :name, :address
「client.rb」ファイルの確認
ここまでの内容を「client.rb」ファイルにまとめます。
# coding: utf-8 #Clientクラス作成 class Client #Clientクラスのインスタンスを初期化 def initialize( name, address ) @name = name @address = address end attr_accessor :name, :address def to_s "#@name, #@address" end end #Clientクラスのインスタンスを作成 hubworks = Client.new('hamada', '福岡県') #ゲッターでインスタンスの名前と住所を表示 puts "名前:#{hubworks.name}、 住所:#{hubworks.address}" #セッターで名前と住所を変更 hubworks.name = '浜田' hubworks.address = '熊本県' #ゲッターでhubworksの値が変更されたか確認 puts "名前:#{hubworks.name}、 住所:#{hubworks.address}"
上記のプログラムファイルを実行します。
意図した通りに出力されました。今日はここまで。