Ruby module和class的理解分析

2021-08-01 17:20:57 字數 1207 閱讀 9318

乙個class就是一系列方法的集合,這些方法將操作物件的狀態(即物件的例項變數)

module.rb:

require './project'

#require porject.rb

#class類是module的子類,類是一種特殊形式的模組,我們使用模組的的主要目的是用來組織**,模組化**

#module firstmodule

def say

puts "hello"

endend

class moduletest

include firstmodule

#module沒有例項,我們使用時把module混合到類中來使用,成為類的一部分(可用作多型)

endtest=moduletest.new

test.say

class manager

include project

#包含project模組

endtest=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"

endend

endtest = human::boy.new

test.say

#module也可以包含類,但呼叫時需要這樣使用 模組名::類名.new

project.rb:

#我們可以把模組放到乙個單獨的檔案裡,然後使用時進行載入

module project

attr :members,true

def initialize

@members=array.new

enddef add(obj)

@members.push(obj)

enddef remove

@members.pop

end

improt和include以及 class的關係

include與 import的區別 兩者的作用效果相同,只是後者不會引起交叉編譯,確保標頭檔案只會被匯入一次 import與 class區別 import會包含這個類的所有資訊,包括實體變數和方法,而 class只是告訴編譯器,其後面宣告的名稱是類的名稱,至於這些類是如何定義的,暫時不用考慮,後面...

類的封裝和訪問控制,struct和class的區別

1.includeusing namespace std 求圓的面積 封裝有兩層含義 把屬性和方法進行封裝,對屬性和方法進行訪問控制 class circle double getr double gets protected private 類物件做函式引數 類封裝了成員函式 可以呼叫類的成員函式...

typescript 文件閱讀筆記 Classes

extends super class animal move distanceinmeters number 0 m.class dogextends animal bark const dog newdog fjdsl dog.bark 預設情況下,所有屬性為public。class anima...