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

發佈了47 篇原創文章 · 獲贊 64 · 訪問量 16萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章