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。



          posted on 2006-06-19 12:01 nbt 閱讀(265) 評論(0)  編輯  收藏 所屬分類: Ruby On Railse技術

          <2006年6月>
          28293031123
          45678910
          11121314151617
          18192021222324
          2526272829301
          2345678

          導航

          統計

          常用鏈接

          留言簿(3)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          相冊

          收藏夾

          Java技術網站

          友情鏈接

          國內一些開源網站

          最新隨筆

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 盐亭县| 罗江县| 金川县| 交口县| 肇州县| 正镶白旗| 大厂| 绥芬河市| 呼图壁县| 固镇县| 兴山县| 平远县| 建始县| 贵港市| 奉节县| 贺州市| 阳东县| 云和县| 普兰店市| 绥芬河市| 山西省| 小金县| 淅川县| 黎川县| 祁连县| 淮滨县| 含山县| 凤庆县| 平乐县| 板桥市| 龙山县| 隆林| 普陀区| 长宁县| 慈溪市| 安化县| 增城市| 从化市| 鹰潭市| 敦化市| 南丰县|