Ruby物件導向程式設計中類的方法與類的擴充套件

2022-10-04 21:51:38 字數 1324 閱讀 4680

類方法

類方法其實質是生活在該類的單件類中的單件方法。其定義方法有三種,分別是:

# 法一

def myclass.a_class_method; end

# 法二

class myclass

def self.anther_class_method; end

end# 法三*

class myclass

class << self

def yet_another_class_method; end

endend

其中第三種方法道出了,類方法的實質,特別記憶一下!

類擴充套件類擴充套件通過向類的單件類中新增模組來定義類方法。

module mymodule

def my_method; 『hello'; end

endclass myclass

class < self

include mymodule

endendmyclass.my_method

上面**展示了具體類擴充套件的實現方式,將乙個mymodule模組引入程式設計客棧到myclass類的單件類中,因為my_method方法是myclass的單件類的乙個例項方法,這樣,my_method方法也是myclass的乙個類方法。

物件擴充套件

類方法是單件方法的特例,因此可以把類擴充套件這種技巧應用到任意物件上,這種技巧即為物件擴充套件

# 法一: 開啟單件類來擴充套件

module mymodule

def my_method; 『hello'; end

endobj = object.new

class << obj

include mymodule

endobj.my_method # => 「hello」

obj.singl # => [:my_method]

# 法二:object#extend方法

module mymodule

def my_method; 『hello'; end

endobj = object.new

#物件擴充套件

obj.extend mymodule

objwww.cppcns.com.my_method # => 「hello」

#類擴充套件

class myclass

extend mymodule

endmycl程式設計客棧ass.my_method # => 「hello」

object#extend是在接受者的單件類中包含模組的快鍵方程式設計客棧式。

本文標題: ruby物件導向程式設計中類的方法與類的擴充套件

本文位址:

Ruby中的物件導向

物件導向是ruby的核心思想,我先列舉幾個單詞然後來解釋他們各自的意思。class state,method,instance,object,constructor,new,id,instance,variables,message class是生產類的母體,而constructor是生產類的機器。...

Python 物件導向程式設計 內建類方法

說明 init self,初始化物件,在建立新物件時呼叫 del self 釋放物件,在物件被刪除之前呼叫 new cls,args,kwd 例項的生成操作 str self 在使用print語句時被呼叫 getitem self,key 獲取序列的索引key對應的值,等價於seq key len ...

Ruby 中的類和物件

最近在ruby china中閒逛,無意中發現了一位提出的問題,這個問題相當有意思,並且促使我寫下了這篇部落格。原問題是這樣描述的 class object defdo it puts do it endend object do it 這個class method 怎麼來的?object new d...