モジュールを定義する
モジュールを定義する方法、およびモジュールの利用方法について解説します。
(Last modified: )
目次
モジュールを定義する
モジュールを定義する方法です。書式は次の通りです。
module モジュール名 end
モジュールは module
から始まり end
で終わりとなります。そして module
のあとにモジュール名を指定してください。
モジュール名はモジュールを識別するための名前で大文字のアルファベットから始まります。例えば Greeting
と言うモジュールを定義するには次のように行います。
module Greeting end
モジュールではクラスと同じくメソッドを定義することができます。クラス変数に相当するものはモジュールにはありませんが定数は定義することができます。
module Greeting def hello puts("Hello") end end
このようにモジュールはクラスに非常に似た構成を持っていますが、大きな違いとしてクラスはクラスからインスタンスを作成することができますがモジュールではインスタンスを作成することはできません。モジュールの利用方法としては「モジュール名.メソッド名」の形式で関数のように実行したり、他のクラスの中にインクルードして利用します。
module Greeting def hello puts("Hello") end end class Hello include Greeting def dispGreeting hello end end
クラスでは継承をサポートしており 1 つの基幹クラスを継承して複数のクラスを作成する事ができます。これによって同じような機能を持つクラスを別々に 1 から作成する必要はありません。ただ、同じ様な機能が必要だったとしてもまったく別の目的のクラスである場合はクラスの継承によって共通化する部分を作成するのはおかしい場合があります。そのような場合に共通となる機能をモジュールとして定義し、各クラスにインクルードして利用することでコードの再利用性を高めることができます。
では実際にサンプルプログラムを作成してみます。
# encoding: UTF-8 module Greeting def hello puts("Hello") end end class Hello include Greeting def dispGreeting hello end end hello = Hello.new hello.dispGreeting
上記を実行すると次のように表示されます。
今回のサンプルでは Hello クラスの中に Greeting モジュールを読み込んで利用しています。このようにクラスの中に読み込まれたモジュールは、モジュールの中で定義されているメソッドをクラスの中から利用することができます。
-- --
モジュールを定義する方法、およびモジュールの利用方法について解説しました。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。