国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Ruby > 正文

介紹Ruby面向對象編程中的類方法和類擴展

2020-02-24 15:39:22
字體:
來源:轉載
供稿:網友

類和方法是面向對象編程語言的典型特征,但類方法受類范圍的約束,今天在這里,武林技術頻道簡要介紹Ruby面向對象編程中的類方法和類擴展,一起跟著武林技術頻道小編的步伐來學習吧!

類方法

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

ruby;"># 法一def MyClass.a_class_method; end# 法二class MyClass  def self.anther_class_method; endend# 法三*class MyClass  class << self    def yet_another_class_method; end  endend

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

類擴展

類擴展通過向類的單件類中添加模塊來定義類方法。

module MyModule  def my_method; ‘hello'; endendclass MyClass  class < self    include MyModule  endendMyClass.my_method

上面代碼展示了具體類擴展的實現方式,將一個MyModule模塊引入到MyClass類的單件類中,因為my_method方法是MyClass的單件類的一個實例方法,這樣,my_method方法也是MyClass的一個類方法。

對象擴展

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

# 法一: 打開單件類來擴展module MyModule  def my_method; ‘hello'; endendobj = Object.newclass << obj  include MyModuleendobj.my_method  # => “hello”obj.singleton_methods  # => [:my_method]# 法二:Object#extend方法module MyModule  def my_method; ‘hello'; endendobj = Object.new#對象擴展obj.extend MyModuleobj.my_method  # => “hello” #類擴展class MyClass  extend MyModuleendMyClass.my_method # => “hello”

Object#extend是在接受者的單件類中包含模塊的快鍵方式。
以上就是由武林技術頻道的小編為大家總結的介紹Ruby面向對象編程中的類方法和類擴展,我們會在今后的文章中繼續和大家分享。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 拜泉县| 皋兰县| 云安县| 北碚区| 修文县| 佛山市| 台中市| 英山县| 麟游县| 玉林市| 淮滨县| 西城区| 随州市| 班戈县| 洪洞县| 太湖县| 常德市| 淮阳县| 扬州市| 枝江市| 青州市| 溧水县| 甘洛县| 双流县| 潢川县| 古浪县| 永新县| 商都县| 巫溪县| 马边| 延寿县| 凌云县| 福泉市| 潞城市| 虞城县| 山西省| 贡嘎县| 炎陵县| 开鲁县| 淮安市| 精河县|