見出し画像

Ruby インスタンスメソッドとクラスメソッドの違いってなにか.

メソッドとは.

何らかの処理をひとまとめにして名前をつけたもののこと.
def メソッド名(引数)
 実行する処理
end

具体的には,以下のようになります.

以下のメソッドはconversionメソッドに文字列を渡すと大文字に変換してくれるメソッドです.

def large_character(str)
 puts str.upcase
end

クラスメソッドとは.

クラスで使用できるメソッド.
引用:TechTechMedia

クラスメソッドを使用した具体例は以下のようになります.

class Conversion
 def self.large_character(str)
   puts str.upcase
 end 
end

Conversion.large_character("hello")
#=> HELLO 

クラスメソッドを使用するときは,以下のように

selfをつける.

またメソッドを呼び出す時にクラス名を指定してあげる必要があります.

selfをつけることとクラスを指定しないとエラーになってしまいます.

class Conversion
 def large_character(str)
   puts str.upcase
 end 
end

large_character("hello")
#=> undefined method `large_character' for main:Object (NoMethodError)

インスタンスメソッドとは.

クラスの内でメソッドを定義するとインスタンスメソッドになります.
class クラス名
 def メソッド名(引数)
   実行する処理
 end
end

先程のコードを参考に今度はインスタンスメソッドを呼び出してみます.

インスタンスメソッドを呼び出すには,インスタンスを作成し,作成したインスタンスに対してメソッドを呼び出せばいいです.

class Conversion
 def large_character(str)
   puts str.upcase
 end 
end

conversion = Conversion.new
conversion.large_character("hello")
#=> HELLO 

まとめ.

クラスメソッド.

使用方法:
クラス名.メソッド名

インスタンスメソッド.

使用方法
インスタンス = クラス名.new
インスタンス名.メソッド名

この記事が参加している募集

スキしてみて

この記事が気に入ったらサポートをしてみませんか?