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
インスタンス名.メソッド名
この記事が気に入ったらサポートをしてみませんか?