0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Rubyのインスタンスメソッドとクラスメソッドを整理した。

Posted at

##インスタンスメソッドとは
クラス内で定義されたメソッドのこと。

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オブジェクト)に対してインスタンスメソッドを呼び出している。

クラスメソッドはオブジェクトを指定しないで呼び出すので、インスタンスメソッドとは別なのです。

簡単にまとめたので、説明不足な点があると思います。
詳しくはご自身でリファレンスなどを読みあさってみてください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?