前書き
初心者で勉強していると新しい用語などの理解が2〜3割しかないまま次々進む傾向にあると思いました。 私はselfについて理解が2〜3割しかなく、後から『どういう意味だったっけなぁ?』と思うことが多く結果「前ちょっとやったのに覚えていない自分は頭が悪い」「センスがないのかな?」といった勉強のモチベーションが下がる要因になると思ったので今日はselfの理解を深めたいと思います。
selfの私の理解
①selfの有無でメソッドの名前が変わる。 def self.メソッド名 ⇨クラスメソッドという
通常はdef メソッド名 ⇨インスタンスメソッド
②インスタンスメソッドとクラスメソッドで呼び出し方が違う。 インスタンスメソッド↓
class Car def maker puts "TOYOTA" end end company = Car.new() puts company.maker
クラス名.new()でインスタンスを作成しそれを変数に代入する その変数.メソッド名でメソッドの中身が表示される
クラスメソッド↓
class Car def self.maker puts "TOYOTA" end end puts Car.maker
インスタンスを作成する必要がなくクラス名.メソッド名でメソッドの中身を表示させる。
わかったこと
selfはそのメソッドを実行しようとしているオブジェクトを指す。