#はじめに
同じ実行例で
Rubyのclassとmoduleの具体的な使い分けの説明 の メモ
#moduleの使用例
moduleで定義したメソッドの使い方
module.rb
# -*- coding: utf-8 -*-
#moduleとメソッドの作成
module Print_m
def hello_m
"hello"
end
def world_m
"world"
end
def module_m
"module"
end
end
if __FILE__ == $0
#モジュールをインストール
include Print_m
# モジュール.メソッド で実行
puts hello_m
puts world_m
puts module_m
end
> ruby module.rb
hello
world
module
#classの使用例
classで定義したメソッドの使い方
class.rb
# -*- coding: utf-8 -*-
class Print_class
def hello_c
"hello"
end
def world_c
"world"
end
end
if __FILE__ == $0
print_c = Print_class.new
puts print_c.hello_c
puts print_c.world_c
end
>ruby class.rb
hello
world
#module とclassの実行方法の違い
##moduleの実行方法
module.rb
include moduleName
method
##classの実行方法
class.rb
class = className.new
class.method
#具体的な違い!
##classにmoduleを呼べるが、moduleからclassを呼べない!!
###classからmoduleを呼ぶ例
module2class.rb
# -*- coding: utf-8 -*-
module Print
def hello_m
"hello"
end
def world_m
"world"
end
def modulePrint_m
"modulePrint"
end
end
class Print_class
include Print
def hello_c
hello_m
end
def world_c
world_m
end
end
if __FILE__ == $0
print_c = Print_class.new
puts print_c.hello_c
puts print_c.world_c
puts print_c.modulePrint_m
end
class.new を実行すると
classのなかで、moduleをインクルードしているので
class.モジュールのメソッド が使用できる