0
1

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.

Ruby要点整理

Posted at

Ruby要点整理

Rubyを学ぶ中で、理解が曖昧で、何度も書籍に立ち戻り確認してしまう点について、知識の整理のために記事を作成します。

##アクセスメソッド
オブジェクトの外部から直接インスタンス変数を参照したり、インスタンス変数に代入したりすることができないため、オブジェクトの内部情報にアクセスするためのメソッドを定義する必要がある。

###例1

example1.rb
class Menu
 def initialize(name)
   @name = name
 end

 def name
   @name
 end

 def name=(name)
   @name = name
 end
end

上の例1では、nameメソッドはインスタンス変数を参照するもので、name=メソッドは、インスタンス変数を変更するもの。
しかし、インスタンス変数をいくつも扱う場合、それぞれについてこれらのメソッドを定義する必要があり、手間やミスの可能性が増える。
そこで用意されているのがアクセスメソッド

###例2

example2.rb
class Menu
  attr_accessor :name

 def initialize(name)
   @name = name
 end
end

例2のように、 「attr_accessor インスタンス変数名を示すシンボル」
とすることで、例1のnameメソッドとname=メソッドの定義を1行で書くことができる。
このように、「attr_accessor」を用いることで、Menuクラスのインスタンスに、nameという情報(=インスタンス変数)を持たせることができる。

0
1
0

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
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?