一个class就是一系列方法的集合,这些方法将操作对象的状态(即对象的实例变量)
module.rb:
project.rb:
- require './project'
- #require porject.rb
-
- #Class类是Module的子类,类是一种特殊形式的模块,我们使用模块的的主要目的是用来组织代码,模块化代码
- #
-
- module FirstModule
- def say
- puts "Hello"
- end
- end
-
- class ModuleTest
- include FirstModule
- #module没有实例,我们使用时把module混合到类中来使用,成为类的一部分(可用作多态)
- end
-
- test=ModuleTest.new
- test.say
-
-
- class Manager
- include Project
- #包含Project模块
- end
-
- test=Manager.new
-
- test.add("jack")
- test.add("crystall")
- test.add("liusihao")
- puts test.members[0]
- puts test.members
-
- #使用require或load时,请求加载的内容放到引号里,而inclue不是用引号,这是因为require或load使用字符串做为参数,而include使用常量形式的模块名,require和load使用字符串变量也可以.
- #
-
- module Human
- class Boy
- def say
- puts "cool"
- end
- end
- end
-
- test = Human::Boy.new
- test.say
- #module也可以包含类,但调用时需要这样使用 模块名::类名.new
- #我们可以把模块放到一个单独的文件里,然后使用时进行加载
- module Project
- attr :members,true
- def initialize
- @members=Array.new
- end
-
- def add(obj)
- @members.push(obj)
- end
-
- def remove
- @members.pop
- end
-
- end