0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

セッターとゲッターの使い方

Last updated at Posted at 2021-05-03

##セッターとゲッターの役割
セッター
 クラス外からインスタンス変数の値を変更できるインスタンスメソッド
ゲッター
 クラス外からインスタンス変数の値を出力できるインスタンスメソッド

使用例

class People
  # セッター('name='までがメソッド名)
  def name=(name)
    @name = name  # 2. メソッドの引数を@nameに入れる
  end
  # ゲッター
  def name
    @name  # 3. @nameを出力する
  end
  
  # ゲッターの応用
  def introduction
    puts "私の名前は#{@name}です。" # 1. メソッドを呼ぶ際に@nameを任意に変更したい
  end
end

# 1〜3の過程で、セッターメソッドに渡した引数がインスタンス変数に入るようになった。

user = People.new
user.name=("太郎")       # セッターを使い、"太郎"が@nameに入った
puts user.name               # ゲッターを呼ぶと@nameが出力される
#=> 太郎                 
user.introduction      
#=> 私の名前は太郎です。 

user.name = "花子"       # セッターで@nameの値を"花子"に設定した
user.introduction
#=> 私の名前は花子です。

まとめ
 インスタンス変数の「メソッド間で同じ値を共有する」という性質と
 インスタンスメソッドの「**クラス外でも使用できる」**という性質を組み合わせることで
 「クラス外でもインスタンス変数の値を変更・出力できる」という使い方をしたものが、
 ゲッターとセッターである。

##簡単に使う
セッターを定義 attr_writer :メソッド名
ゲッターを定義 attr_reader :メソッド名

ゲッターとセッターをまとめて定義 attr_accessor :メソッド名

0
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?