ホーム :その2 :クラスとモジュール :

【モジュールとは】

前へ 次へ


●モジュールとは
 
 クラスは実体(データ)と振る舞い(処理)を持つが、
 モジュールは処理の部分だけを持つ。

 (クラスとの違い)
 ・モジュールはインスタンスを持つことができない
 ・モジュールは継承できない


●モジュールの使い方

 ・名前空間の提供
  メソッドや定数、クラスの名前がぶつからないようにする
  ために利用

  モジュールの提供するメソッドは「モジュール名::メソッド名」と
  いう形式で参照する

  (例)
  --------------------------------------------------
  # ファイルの存在を調べる
  p FileTest::exist?("/usr/bin/ruby")  #=> true
  # ファイルサイズ
  p FileTest::size("/usr/bin/ruby")   #=> 1374694
  --------------------------------------------------

  モジュール内で定義したメソッドや定数と同名のものが
  定義されていないときは、モジュール名の指定を省略する
  ことができる(includeを利用)

  (例)
  ------------------------------------------------------
  # 円周率(定数)
  p Math::PI
  # 2の平方根
  p Math::sqrt(2)

  include Math    # Mathモジュールをインクルードする
  p PI
  p sqrt(2)
  ------------------------------------------------------


 ・Mix-inによる機能の提供

  モジュールをクラスに混ぜ合わせることを「Mix-in」という
  (例)
  ---------------------------------------
  module MyModule
   # 共通して提供したいメソッドなど
  end

  class MyClass
   include MyModule
   # MyClassに固有のメソッドなど
  end
  ---------------------------------------




クラスとモジュール に戻る