どうも、Rubyをやっているものです。突然ですが、Rubyにおけるクラスとかモジュールとかって、いまいちよくわからなくないですか?
そこで今回はRubyのクラスとモジュールについてざっくりとまとめておきたいと思います。
Rubyのクラスとモジュールについてざっくりとまとめる
クラスとインスタンス
クラスとインスタンスは以下のようなものです。
そうです。鯛焼きです。
この鯛焼きの型、これこそがクラスです。そしてそれによっていくつも作り出される鯛焼き。これがインスタンスです。なんてわかりやすいんでしょうか。
つまりこれからはクラスが出たら鯛焼き型、そしてインスタンスは鯛焼きと覚えてください。
クラスの継承について
すでに定義されているクラスを拡張して、新しいクラスを作ることです。なぜこのような機能があるかというと、いちいち1からクラスを作っていたら同じ部分などが多くなってしまって、冗長になってしまうからです。
例えば鯛焼きの中身をあんこから、クリームに変えようと思ったとします。当然同じ鯛焼き型を使いますよね、ただ、中身をあんこからクリームにかえるだけです。これがクラスの継承です。
鯛焼き型は一緒のものを使って、中身だけちょっと違うものを作る。これです。
クラスを作る方法
クラスを作る方法は以下のような定形文があります。
コード
class クラス名
クラスの定義
end
ちなみにクラス名は大文字からはじめないとエラーになります。
モジュールについて
モジュールは簡単にいうと「いろいろなところの共通処理をまとめる」という機能を持っています。
モジュールはクラスと以下の点で違います。
- インスタンスを生成できない
- 継承できない
Mix-inによる機能の提供
モジュールを使う基準ですが、ざっくりと以下のような考え方があります。
- 2つのクラスは似たような機能を持っているだけで、同じクラスとは考えたくない場合
- すでにクラス継承をしていて、うまく共通の機能を追加できない場合
モジュールの作り方
コード
module モジュール名
モジュールの定義
end