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技術網站

          友情鏈接

          國內一些開源網站

          最新隨筆

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 鄄城县| 兴业县| 兖州市| 从化市| 平阴县| 福建省| 沽源县| 留坝县| 巴里| 隆子县| 夹江县| 成安县| 徐汇区| 泸定县| 凤山市| 抚顺县| 正阳县| 白玉县| 龙口市| 余姚市| 兴安盟| 永清县| 壤塘县| 平湖市| 南和县| 塔河县| 高淳县| 萨嘎县| 延津县| 长丰县| 容城县| 日喀则市| 纳雍县| 大足县| 江华| 宾阳县| 靖宇县| 上蔡县| 莎车县| 龙南县| 广宁县|