LoginSignup
1
0

More than 3 years have passed since last update.

Ruby学習ログ:その2【class, attr_accessor】

Last updated at Posted at 2019-11-27

ハマりかけてます。
とりあえず整理するため書いていく!

【Ruby】クラスとかインスタンスについて改めて学習してみた

  クラス
=  初期処理インスタンス生成インスタンスメソッド定義・実行

ちなみにクラスの中は 初期処理インスタンスメソッド定義 が含まれていれば大丈夫!
...と思ったがattr_accessorというメソッドがないとクラスの外でインスタンス生成ができないらしい
(scivolaさんがコメントにて間違いを指摘してくださりました。
attr_accessorメソッドを定義するメソッドとのこと)

attr_accessor (Module)

詳しくは
attr_accessorメソッドの使い方

↓これが一番理解しやすかった↓
アクセスメソッド(アクセサメソッド )について(Ruby)
より引用↓


class Pokemon
  def initialize(name)
    @name = name
  end

  def getName
    @name
  end

  def setName=(changed_name)
    @name = changed_name
  end
end

#クラス外部から値の参照が可能
pokemon = Pokemon.new('ピカチュウ')
puts pokemon.getName
=> ピカチュウ

#クラス外部から値の更新が可能
pokemon.setName = 'ギエピー'
puts pokemon.getName
=> ギエピー

これをattr_accessorで書き換えると

class Pokemon
  attr_reader :name

  def initialize(name)
    @name = name
  end
end

pokemon = Pokemon.new('ピカチュウ')

puts pokemon.name
=> ピカチュウ

やっと理解できた...!

引数処理に関して掘り下げると
ruby引数処理に使えるテクニック

クラスについてもっと知りたい!
【まとめ】インスタンス変数、クラス変数、クラスインスタンス変数

所感

アウトプット前提で学習すると効率よくインプットできますね!
個人的にはもっと質の高い記事を投稿したいが、学習ログという定に甘えてます:baby:

    

1
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
1
0