Ruby module和class的理解分析

一个class就是一系列方法的集合,这些方法将操作对象的状态(即对象的实例变量)
module.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

project.rb:

    #我们可以把模块放到一个单独的文件里,然后使用时进行加载
    module Project
    attr :members,true
    def initialize
    @members=Array.new
    end
    def add(obj)
    @members.push(obj)
    end
    def remove
    @members.pop
    end

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值