今回は、クラスに定義できる2種類のメソッド「クラスメソッド」と「インスタンスメソッド」について解説したいと思います。Rubyを学習し始めてつまずきやすいポイントの1つだと思うので、丁寧に進めていきましょう。「self.」が入ってきてややこしくなる所だね。この記事の内容クラスメソッドとは定義方法と呼び出しインスタンスメソッドとは定義方法と呼び出し具体例クラスメソッドとインスタンスメソッドの使い分けまとめ最後にクラスメソッドとはクラスが使用できるメソッドです。クラスメソッドを定義したクラス自身が使用でき、クラスで共通の情報を持った処理に使用します。endendクラス名.メソッド名(引数)クラスメソッドはメソッド名の前に「self.」を付けます。代表的なクラスメソッドは、インスタンスを生成する「newメソッド」だね。インスタンスメソッドとはインスタンスが使用できるメソッドです。インスタンスメソッドを定義したクラスのインスタンスに使用でき、インスタンス毎の個別の情報を使った処理に使用します。先ほどの説明だけではピンとこないと思うので、例題を見ながら確認していきましょう。下のコードを見てください。「House」というクラスに、「price」というクラスメソッドとインスタンスメソッドがそれぞれ定義されていますね。endendまずは、クラスメソッドを呼び出してみます。以下のように記述すると、クラスメソッドが呼び出されます。1000万円です(クラスメソッド)次にインスタンスメソッドを呼び出してみます。以下のように記述すると、インスタンスメソッドが呼び出されます。1000万円です(インスタンスメソッド)「newメソッド」で、「House」のインスタンスである「house」を生成しています。クラスメソッドとインスタンスメソッドの使い分けクラスメソッドとインスタンスメソッドの使い分けですが、「クラスメソッドは全体で扱うべき情報を扱う」、「インスタンスメソッドは個々で扱うべき情報を扱う」といった感じです。先ほどと同様に例を見ていきましょう。とあるスーパーマーケットの情報を表示するアプリケーションがあると仮定します。そのスーパーマーケットの評判(rate)をクラスで定義し、それに基いて評判(rate)のインスタンスを生成して管理することにします。すると、以下のように定義することができます。品揃え最高!評判の数(rate_count)は全体で扱うべき情報なのでクラスメソッド、評判内容(show_rate)は個々で扱うべき情報なのでインスタンスメソッドと使い分けていることが分かりますね。まとめクラスメソッドは、クラスが使用できるメソッドインスタンスメソッドは、インスタンスが使用できるメソッドクラスメソッドは全体で扱うべき情報を扱い、インスタンスメソッドは個々で扱うべき情報を扱う最後にクラスメソッドとインスタンスメソッドには前述で説明したような違いがありましたが、正直どちらで書いても実装はできます。加えて、インスタンスメソッドには色々なデータを加えることができるので、できればインスタンスメソッドで記述することをおすすめします。今回は、クラスに定義できる2種類のメソッド「クラスメソッド」と「インスタンスメソッド」について解説しました。1回ではすぐに理解できない箇所だと思うので、他の記事や参考書も読み返しながら、徐々に理解を深めていってください。yoshi19941117TechTechMedia【Ruby基礎】クラスとインスタンスについて初心者向けにまとめてみた【HTML基礎】ブロックレベル要素とインライン要素の違いについてまとめて...Railsエンジニアちばよしはる銀座にあるヘルステック企業のRailsエンジニア。初心者から中級者向けに記事を更新しています。お酒とカレーと競馬が好き。TechTechMedia。