<DAY63>ruby ゲッターとセッターについて
学習時間と累計時間
●学習日数 63日
●学習時間(本日) 4.0時間
●累計学習時間 165.0時間
●一日あたりの平均学習時間 2.61時間
この記事のまとめ
ゲッターとは他のクラスでインスタンス変数の値を使用したい時に使うメゾットの事。 セッターとはインスタンス変数の値を書き換えるメソッドの事。 短縮系で覚える前に、定義の仕方を把握した方がイメージしやすい。
ゲッターとは
インスタンスのインスタンス変数を返すだけのメゾットの事。 インスタンスが持っているインスタンス変数の情報を取得する事が出来る。
ゲッターを定義する事で何が変わるの?
ゲッターを定義する意味を把握するには以下の前提条件を理解しているかが重要である。
この表に記載している意味を理解しているかどうか?
セッターとは?
インスタンス変数の値を変更できるようにする為のメソッド。
どういう時に使うの?
他のクラスのインスタンス変数の情報を使いたい時。
違うクラスに対して同じ値を与えてあげたい時にゲッターが必要だよと理解する。
class Dog #クラスメゾットを定義してみる def self.naku puts "犬はわんわん泣く。" end #インスタンスメゾットを定義してみる def dog_name(name) @name = name puts "#{name}" end #nameのゲッターを指定してみた def name return @name end #nameのセッターを指定してみた def name=(name) @name = name end end dog = Dog.new #セッターメソッドを使って犬の名前を変えてみた dog.name=("taro") #ゲッターメソッドを使って犬の名前を出力してみた puts dog.name
よく使うメゾットであり、インスタンスが増えると書くのが大変になる。 今は1のインスタンス変数なので、少ないが、3つになると9行も記載しないといけない。かなり面倒になる。 なので、以下のような短縮系がある。
class Dog attr_accessor :name end