• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    Ruby程序快速入門之方法存取控制

    發布: 2007-4-26 23:57 | 作者: seanhe | 來源: | 查看: 22次 | 進入軟件測試論壇討論

    領測軟件測試網   在許多情況中,當你設計你的應用程序時,你可能想實現一個方法僅為一個對象內部使用而不能為另外一些對象使用。Ruby提供了三個關鍵字來限制對方法的存取。

      · Private:只能為該對象所存取的方法。

      · Protected:可以為該對象和類實例和直接繼承的子類所存取的方法。

      · Public:可以為任何對象所存取的方法(Public是所有方法的默認設置)。

      這些關鍵字被插入在兩個方法之間的代碼中。所有從private關鍵字開始定義的方法都是私有的,直到代碼中出現另一個存取控制關鍵字為止。例如,在下面的代碼中,accessor和area方法默認情況下都是公共的,而grow方法是私有的。注意,在此doubleSize方法被顯式指定為公共的。一個類的initialize方法自動為私有的。

    class Rectangle
    attr_accessor :height, :width
    def initialize (hgt, wdth)
    @height = hgt
    @width = wdth
    end
    def area ()
    @height*@width
    end
    private #開始定義私有方法
    def grow (heightMultiple, widthMultiple)
    @height = @height * heightMultiple
    @width = @width * widthMultiple
    return "New area:" + area().to_s
    end
    public #再次定義公共方法
    def doubleSize ()
    grow(2,2)
    end
    end

      如下所示,doubleSize可以在對象上執行,但是任何對grow的直接調用都被拒絕并且返回一個錯誤。

    irb(main):075:0> rect2=Rectangle.new(3,4)
    => #<Rectangle:0x59a3088 @width=4, @height=3>
    irb(main):076:0> rect2.doubleSize()
    => "New area: 48"
    irb(main):077:0> rect2.grow()
    NoMethodError: private method 'grow' called for #<Rectangle:0x59a3088 @width=8, @height=6>
    from (irb):77
    from :0

      默認情況下,在Ruby中,實例和類變量都是私有的,除非提供了屬性accessor和mutator。

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>