プログラミング

[Ruby・Rails]クラスメソッドとインスタンスメソッドの確認

こんにちは、Nanayakuです。

今回は、「【Ruby on Rails】RSpecのModel(モデル)テスト書き方サンプル | にょけんのボックス」を参考にRSpecでテストを作成しているときに、クラスメソッドインスタンスメソッドが出てきて、「何の違いがあったかな?」と思ったので、自分の備忘録として2つの違いを解説していきます。

メソッドとは

メソッドとは、オブジェクトの属性・処理を定義したものです。

例えば、オブジェクトに属性を文字列に変更(.to_s)したり、オブジェクト内の情報を検索(.find)したりするもののことです。

 

クラスメソッドとインスタンスメソッドの違い

クラスメソッドは、クラスから直接定義できます。

インスタンスメソッドは、クラスからインスタンスを生成してから定義できます。

 

クラスメソッドとは

定義

クラスメソッドは、下記のように定義できます。

 

また、クラスメソッドが複数ある場合は、下記のように「class << self」を追記することで定義できます。

 

呼び出し

クラスメソッドを呼び出す場合は、下記のように実行します。

 

インスタンスメソッド

定義

インスタンスメソッドは、クラスメソッドと似ていますが、self.を書きません。

 

呼び出し

インスタンスメソッドは、クラスからインスタンスを生成(newメソッド)することで実行できます。

参考

userを@userで定義すると、インスタンス変数になります。

 

まとめ

クラスメソッドは、クラスから定義・実行できるメソッドです。

インスタンスメソッドは、インスタンス(クラスから生成)から定義・実行できるメソッドです。

 

参考サイト

【Ruby入門】クラスメソッドとインスタンスメソッドの使い方まとめ | 初心者向け完全無料プログラミング入門

 

最後に

備忘録がわりに作ったので、間違っている所とかあったら、コメントくれると嬉しいです。

 

-プログラミング
-

Copyright© Nanayaku blog , 2019 All Rights Reserved Powered by AFFINGER5.