麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > 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面向對象編程中的類方法和類擴展,我們會在今后的文章中繼續和大家分享。

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

圖片精選

主站蜘蛛池模板: 成人午夜亚洲 | 成人在线视频免费看 | 欧美亚洲国产一区 | 羞羞羞网站 | 欧美视频在线观看一区 | 亚洲无马在线观看 | 91成人一区二区三区 | 欧美一级特黄a | wwwxxx视频| chengrenzaixian | 在线播放免费播放av片 | 一级做受大片免费视频 | 色悠悠久久久久 | chinesexxxx刘婷hd 国产资源视频在线观看 | 久久精品国产99国产精品澳门 | xxxxxx免费| 在线播放中文 | 久久精品中文字幕一区二区三区 | 久久久www成人免费精品 | 国产精品一区在线免费观看 | av免费在线观看国产 | 俄罗斯16一20sex牲色另类 | 国产成人高清成人av片在线看 | 日韩av电影免费在线观看 | 久草在线最新免费 | 成人在线视频网 | 一级一级一级一级毛片 | av资源在线天堂 | 成人在线视频免费观看 | 国产一区二区三区在线免费 | 欧洲成人综合网 | 精品国产一区二区三区天美传媒 | 国产精品成人av片免费看最爱 | 999精品国产 | 精品一区二区在线播放 | 精品免费在线视频 | 久久久久久久久久久久久久久伊免 | 亚洲一区二区免费视频 | 亚洲最大的成人网 | 最近中文字幕一区二区 | 天天草天天爱 |