##インスタンスメソッドとは
クラス内で定義されたメソッドのこと。
user.rb
class User < ApplicationRecord
#Userクラス内で定義されているインスタンスメソッド
def first_user
puts '鈴木一郎'
end
end
##インスタンスメソッドの使い方
インスタンスメソッドは、クラスのオブジェクトから呼び出すことができる。
user.rb
class User < ApplicationRecord
#Userクラス内で定義されているインスタンスメソッド
def first_user
puts '鈴木一郎'
end
end
user = User.new
user.first_user
##クラスメソッドとは
クラスに対して実行するメソッドのこと。
user.rb
class User < ApplicationRecord
#Userクラス内で定義されているインスタンスメソッド
def first_user
puts '鈴木一郎'
end
end
user = User.new#<=Userクラスにnewメソッドを実行している。
user.first_user
##クラスメソッドの使い方
user.rb
class User < ApplicationRecord
#Userクラス内で定義されているインスタンスメソッド
def first_user
puts '鈴木一郎'
end
#メソッドの前にselfをつけて定義する
def self.second_user
puts '田中太郎'
end
end
#呼び出すときはクラス名に対して呼び出す
User.second_user#=>田中太郎
メソッドの中の処理だけを使いたい場合によく使われる。
✳︎インスタンスメソッドは、あるオブジェクトに対する処理として実行します。
##重要
クラス内で定義されたメソッドは、クラスから作成されたオブジェクトしか呼び出せません。
user.rb
class User < ApplicationRecord
#Userクラス内で定義されているインスタンスメソッド
def first_user
puts '鈴木一郎'
end
user = User.new
user.first_user#<=空のインスタンスが代入された変数(userオブジェクト)に対してインスタンスメソッドを呼び出している。
クラスメソッドはオブジェクトを指定しないで呼び出すので、インスタンスメソッドとは別なのです。
簡単にまとめたので、説明不足な点があると思います。
詳しくはご自身でリファレンスなどを読みあさってみてください。