大田区から発信するゆるゆる日記

主にITエンジニアに関する備忘録日記。たまに趣味も。何か不備があればコメント頂けると幸いです。Twitterアカウント https://twitter.com/ryuzan03

【Ruby】クラスメソッドとインスタンスメソッド

爆速学習の番外編です。

Rubyのクラスメソッドとインスタンスメソッドについて理解を深めます。

 

※下記の内容に不備がありましたら、コメント頂けると幸いです。また、下記の内容をご使用頂ける場合は自己責任でお願いします。

【目次】

メソッドとは?

現実世界の動作をプログラムで表現したもの。

 

動作は複数の処理から成り立っています。その処理をオブジェクトに置き換え、さらにオブジェクトに置換した処理を1つにまとめ、動作として使えるようにしたものがメソッドです。

 

例えば、データを生成する場合は、「生成する」部分をメソッドとして定義します。

 

メソッドもオブジェクトの塊・・・?

 

クラスメソッドとは?

クラスが使用できるメソッドです。

 

クラスメソッドはクラス自身が定義したメソッドを使用することができます。

 

クラスメソッドの定義と呼び出し 

class クラス名
def self.メソッド名
# 処理
end
end

インスタンス名 = クラス名.メソッド名(引数)

クラスメソッドを定義する時は、メソッド名の前に「self.」を付けます。

 

 

呼び出し時には、引数を使うこともできます。

 

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

インスタンスが使用できるメソッドです。

 

インスタンスメソッドを定義したクラス内で定義したインスタンスに使用できます。

 

インスタンスメソッドの定義と呼び出し

class クラス名
def メソッド名
# 処理
end
end

インスタンス名 = クラス名.new #インスタンスの生成

インスタンス名.インスタンスメソッド名(引数)

普通のメソッドと書き方は同じです。

 

また、クラスメソッドと同様に引数を使うことができます。

 

今後に向けて

寄り道ばかりしてたら、時間がなくなってきたぞ。。。