婷婷综合国产,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面向對象編程中類的方法與類的擴展的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 聊城市| 缙云县| 泰州市| 永年县| 吉安市| 依安县| 烟台市| 闵行区| 临泽县| 淳安县| 和田市| 南川市| 东乡县| 洛浦县| 陵川县| 北京市| 友谊县| 高阳县| 昆山市| 图木舒克市| 山阳县| 仁怀市| 洛扎县| 临清市| 连山| 晋宁县| 日喀则市| 公安县| 城步| 石泉县| 汉沽区| 息烽县| 久治县| 中牟县| 武城县| 万荣县| 桃园县| 嘉善县| 太保市| 保靖县| 阿图什市|