Ruby程序設(shè)計(jì)語(yǔ)言快速入門(五)-----之方法存取控制

          ?
          •   · Private:只能為該對(duì)象所存取的方法。
          •   · Protected:可以為該對(duì)象和類實(shí)例和直接繼承的子類所存取的方法。
          •   · Public:可以為任何對(duì)象所存取的方法(Public是所有方法的默認(rèn)設(shè)置)。

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

          class?Rectangle
          attr_accessor?:height,?:width
          def?initialize?(hgt,?wdth)
          @height?=?hgt
          @width?=?wdth
          end
          def?area?()
          @height*@width
          end
          private?#開(kāi)始定義私有方法
          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可以在對(duì)象上執(zhí)行,但是任何對(duì)grow的直接調(diào)用都被拒絕并且返回一個(gè)錯(cuò)誤。

          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?

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



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

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

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(3)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          相冊(cè)

          收藏夾

          Java技術(shù)網(wǎng)站

          友情鏈接

          國(guó)內(nèi)一些開(kāi)源網(wǎng)站

          最新隨筆

          搜索

          積分與排名

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 盐山县| 阜城县| 交城县| 建瓯市| 同江市| 巨野县| 扶绥县| 塘沽区| 左云县| 乌鲁木齐市| 深圳市| 沈丘县| 紫云| 祥云县| 赣榆县| 临沧市| 嫩江县| 广安市| 乌审旗| 南召县| 渝北区| 迁安市| 闽清县| 茌平县| 双峰县| 晴隆县| 深州市| 方山县| 安庆市| 沁阳市| 九江县| 湛江市| 乐安县| 宿松县| 垣曲县| 长顺县| 当阳市| 基隆市| 靖边县| 德兴市| 贡山|