婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Ruby面向對象編程中類的方法與類的擴展

Ruby面向對象編程中類的方法與類的擴展

熱門標簽:真人語音電銷機器人系統 北京語音電銷機器人價格 樂昌電話機器人 買了外呼系統不想用了怎么辦 電話機器人電話卡封號怎么辦 開封百應電銷機器人聯系方式 邯鄲外呼調研線路 浦東上海400開頭的電話申請 武漢呼叫中心外呼系統線路商

類方法

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

# 法一
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
  end
end

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

類擴展

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

module MyModule
  def my_method; ‘hello'; end
end

class MyClass
  class  self
    include MyModule
  end
end

MyClass.my_method

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

對象擴展

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

# 法一: 打開單件類來擴展
module MyModule
  def my_method; ‘hello'; end
end

obj = Object.new
class  obj
  include MyModule
end

obj.my_method  # => “hello”
obj.singleton_methods  # => [:my_method]
# 法二:Object#extend方法
module MyModule
  def my_method; ‘hello'; end
end

obj = Object.new
#對象擴展
obj.extend MyModule
obj.my_method  # => “hello” 
#類擴展
class MyClass
  extend MyModule
end

MyClass.my_method # => “hello”

Object#extend是在接受者的單件類中包含模塊的快鍵方式。

您可能感興趣的文章:
  • Ruby面向對象編程中類與方法的基礎學習
  • 簡要解讀Ruby面向對象編程中的作用域
  • Ruby的面向對象方式編程學習雜記
  • Ruby的面向對象編程的基礎教程
  • Ruby面向對象編程詳解
  • ruby 面向對象思維 概念
  • Ruby 面向對象知識總結

標簽:宜春 六安 自貢 松原 淄博 鄂州 河北 石嘴山

巨人網絡通訊聲明:本文標題《Ruby面向對象編程中類的方法與類的擴展》,本文關鍵詞  Ruby,面向,對象,編程,中類,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Ruby面向對象編程中類的方法與類的擴展》相關的同類信息!
  • 本頁收集關于Ruby面向對象編程中類的方法與類的擴展的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 四会市| 黄平县| 阳城县| 前郭尔| 永胜县| 康定县| 定襄县| 甘泉县| 沽源县| 扎囊县| 那曲县| 理塘县| 资溪县| 大城县| 梧州市| 荔浦县| 鹰潭市| 南华县| 黔南| 漳浦县| 乐平市| 南澳县| 茂名市| 余庆县| 涞源县| 视频| 邵东县| 临城县| 报价| 霍林郭勒市| 高陵县| 龙州县| 泰顺县| 巧家县| 交城县| 积石山| 临清市| 万年县| 沙坪坝区| 桓台县| 文昌市|