ruby-module和class

一个class就是一系列方法的集合,这些方法将操作对象的状态(即对象的实例变量)
module.rb:

   
   
  1. require './project'
  2. #require porject.rb
  3.  
  4. #Class类是Module的子类,类是一种特殊形式的模块,我们使用模块的的主要目的是用来组织代码,模块化代码
  5. #
  6.  
  7. module FirstModule
  8.     def say
  9.         puts "Hello"
  10.     end
  11. end
  12.  
  13. class ModuleTest
  14.     include FirstModule
  15.     #module没有实例,我们使用时把module混合到类中来使用,成为类的一部分(可用作多态)
  16. end
  17.  
  18. test=ModuleTest.new
  19. test.say
  20.  
  21.  
  22. class Manager
  23.     include Project
  24.     #包含Project模块
  25. end
  26.  
  27. test=Manager.new
  28.  
  29. test.add("jack")
  30. test.add("crystall")
  31. test.add("liusihao")
  32. puts test.members[0]
  33. puts test.members
  34.  
  35. #使用require或load时,请求加载的内容放到引号里,而inclue不是用引号,这是因为require或load使用字符串做为参数,而include使用常量形式的模块名,require和load使用字符串变量也可以.
  36. #
  37.  
  38. module Human
  39.     class Boy
  40.         def say
  41.             puts "cool"
  42.         end
  43.     end
  44. end
  45.  
  46. test = Human::Boy.new
  47. test.say
  48. #module也可以包含类,但调用时需要这样使用 模块名::类名.new
project.rb:

   
   
  1. #我们可以把模块放到一个单独的文件里,然后使用时进行加载
  2. module Project
  3.     attr :members,true
  4.     def initialize
  5.         @members=Array.new
  6.     end
  7.     
  8.     def add(obj)
  9.         @members.push(obj)
  10.     end
  11.  
  12.     def remove
  13.         @members.pop
  14.     end
  15.  
  16. end
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值