ruby學習總結04

來源:互聯網
上載者:User

標籤:

1.類和執行個體的關係

  使用【執行個體.class】查看某個對象屬於哪個類

  使用【執行個體.instance_of(類名)】判斷該執行個體是否屬於某個類

  使用【執行個體.instance_methods】查看類的所有執行個體方法

 2.BasicObject類是所有類的父類,它只定義了ruby對象的最基本的方法,甚至連一般對象需要的功能都沒有,顧一般繼承Object類,可以通過【is-a】或【is-a?】判斷繼承關係

3.類可以通過【class】關鍵字進行建立,預設具有無參的構造方法,通過是可以通過定義【initialize方法】定義有參數的構造方法,在方法中可以通過【self】關鍵字來調用接受者

4.屬性的getter和setter方法可以通過兩種方法實現

  方法一:定義供外部存取的方法  def 屬性   @屬性  end   和 def 屬性名稱=(屬性值)  @屬性=屬性值  end

  方法二:通過聲明訪問屬性的方法  attr_reader:屬性名稱    attr_writer:屬性名稱   attr_accessor:屬性名稱

5.類方法的定義

  1.方法一:在單例類中定義的方法都是單例方法 ,可以使用【class << 類名】的形式定義單例類,在單例類中添加方法即可

  2.方法二:在普通類定義中,添加類方法  【class << self】

    class 類名

      class << self

        def 方法名(參數)

          執行操作

        end

      end

    end

  3.方法三:使用 【def 類名.方法名(參數)】的形式定義

  4.方法四:在類的定義中使用【def self.方法名】進行定義

6.類常量可以直接在類的定義中進行定義,使用【類名::常量名】進行調用

 類變數不能使用attr_accessor,需要直接定義存取方法

7.方法的存取層級:public(預設),private,protected

  可以通過【private : 方法名】來單獨設定某個方法的存取層級

  也可以通過【private】等來設定,之後的所有方法的存取層級

8.類的擴充

  1.在原有類的基礎上添加新的方法

    class 原類名

      def 新添加的方法名

        執行的處理

      end

    end

  2.繼承父類(預設繼承Object類)

     1.使用【class 類名 < 父類名】的方式定義子類,在子類定義中可以通過【alias 別名 原名】將原方法名進行別名設定,通過【undef 方法名】刪除已有的方法

    2.通過【常量名=Class.new(父類名)】定義一個繼承了父類的子類,並賦值給常量

  3.在方法類定義中,通過【extend 模組名】擴充類的類方法,通過【include 模組名】擴充類的執行個體方法

 

ruby學習總結04

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.