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のクラスメソッドって何?

Last updated at Posted at 2020-06-28

はじめに

Rubyでつまずいた項目のひとつ、クラスメソッド。
わからなかったことを書いていきます。

クラスとインスタンスについては[こちら][link-1] 。
[link-1]:https://qiita.com/fishmans0120/items/569cd9ab37b89c0c1726

メソッドとは

前提条件として、メソッドとは何か。
メソッドとは、データが持つ「動作」です。

車に当てはめて考えてみると、
車というデータが持つ動作は「走る、止まる、ウィンカーを出す」などです。

クラスメソッドとは

クラスメソッドを定義したクラス自身が使えるメソッド。
クラスで共通の情報を持った処理に使うことができます。
定義の方法は他のメソッドと同じですが、メソッド名の前に.selfをつけます。

test.rb
class Car
  def self.run # メソッド名の前にselfをつけてクラスメソッドを定義します
    puts "走ります"
  end
end

Car.run # クラス名.メソッド名で、定義したクラスメソッドを実行できます

(2020.6.29追記。ご指摘ありがとうございます:bow_tone1:
もしくは class << self から end の間にメソッドを書く記法もあります。
ネストは1段深くなりますが、クラスメソッドをたくさん定義したい場合はメソッド名の前に毎回.selfをつけなくても済みます。

test.rb
class Car
  class << self
    def run
      puts "走ります"
    end
  end
end

最後に

クラスメソッドの注意点は以下の通り。

・定義するときには.selfをメソッド名の前につける。
・もしくは class << self から end の間にメソッドを書く記法もある。
・このメソッドは、クラスのみに用いることができます。

最後まで読んでいただきまして、ありがとうございました。

0
0
4

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?