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 閱讀(262) 評論(0)  編輯  收藏 所屬分類: Ruby On Railse技術

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

          導航

          統計

          常用鏈接

          留言簿(3)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          相冊

          收藏夾

          Java技術網站

          友情鏈接

          國內一些開源網站

          最新隨筆

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 鹤庆县| 庆云县| 固始县| 柳江县| 福建省| 深州市| 方山县| 颍上县| 南昌县| 分宜县| 涞源县| 迁西县| 论坛| 曲麻莱县| 民和| 阳山县| 凌云县| 讷河市| 淳化县| 商丘市| 土默特左旗| 惠来县| 扎兰屯市| 措勤县| 玉山县| 昭通市| 晋江市| 蒲江县| 肇东市| 萍乡市| 阳西县| 新绛县| 昌图县| 三门县| 黄石市| 郴州市| 北碚区| 平远县| 治县。| 滨海县| 延吉市|