1
1

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 1 year has passed since last update.

【Ruby】クラス、モジュールを使用するメリットや使い方をまとめてみた

Posted at

はじめに

Rubyを学習している中でクラスやモジュールの使い方や使用するメリットを整理した内容になります。基本的な使い方を記載していますが、他にも様々な機能があるため、参考情報として見ていただけると幸いです。

クラスの基本的な使い方とメリット

インスタンス化

今回例としてUserクラスを定義します。

 class User
    def initialize(name)
        @name = name
    end

    def getname
        @name
    end
 end

 user = User.new("tanaka") #これでUserクラスをインスタンス化できる
 p user.getname
# "tanaka" 

継承

Userクラスを継承することで、Playerクラス内ででUserクラスで定義したインスタンス変数やメソッドを使用することができます。

 class Player < User #これでUserクラス継承ができる
 end

 player = Player.new("tanaka")
 p player.getname
# "tanaka" 

オーバーライド

Userクラス(スーパークラス)で定義したメソッドをPlayerクラス(サブクラス)用にメソッドの再定義をすることができます。

 class Player < User
     def getname
         p "Playerクラスでオーバーライドしてます"
        @name
    end
 end

 player = Player.new("tanaka")
 p player.getname
# "Playerクラスでオーバーライドしてます"
# "tanaka"

メリット

クラスはオブジェクト単位でメソッドや変数をまとめることができ、
コードの再利用性や、可読性向上を図ることができます。

モジュールのメリットと使い方

 module UserCommon
    def getname
        @name
    end
 end

 class User
    include UserCommon #これでUserCommonモジュールをUserクラスで使用できる
    def initialize(name)
        @name = name
    end
 end

 user = User.new("tanaka")
 p user.getname
# "tanaka" 

メリット

モジュールは特定のクラスで再利用したいメソッドがある場合に一箇所に集めておける仕組みです。
クラスのようにインスタンス化はできないですが、再利用したいメソッドをモジュールに切り分けることで可読性向上を図ることができます。

まとめ

クラスはインスタンス化して、継承やオーバーライドを使用することで、コードの再利用性や可読性向上させることができる。
モジュールはインスタンス化できないが、メソッドをまとめておけ、コードの可読性向上させることができる。

1
1
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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?