rubyのselfとは
間違っているかもしれないので参考程度に。興味ない人は読み飛ばしでお願いします。
selfはオブジェクトを参照していることに注意が必要です。図のようなイメージです。
インスタンスメソッド「sayHi」の中でself.nameとするとselfは「そのメソッドを実行している「オブジェクト」」を参照する。
まずはじめにself.nameの .nameメソッド→これは
attr_accessor :name
と記述しておかないと、.nameメソッドが作られていないことになるのでattr_accessorが必要。メソッドを受け取っているもののことをレシーバーといいます。レシーバーに気を取られていると大事なことを見失う。
User.new(“tom”)
としてインスタンスを生成すると自動的にdefinitializeメソッドが呼び出されることになります。
コメント