<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    閑云無衣
    無衣的筆記
    前面一節(jié)的?Fruit?類有兩個(gè)實(shí)變量,分別表述水果的類型和狀態(tài).直到為這個(gè)類寫了一個(gè)定制的inspect方法,我們方才了解它不會(huì)對(duì)一個(gè)缺乏屬性的水果做出合理的解釋.幸運(yùn)的是,Ruby提供了一種允許實(shí)變量總是被初始化的方法.


    initalize方法

    當(dāng)Ruby創(chuàng)建一個(gè)新對(duì)象時(shí),它總是會(huì)尋找一個(gè)名為?initialize?的方法并執(zhí)行它.因此,我們可以簡(jiǎn)單通過一個(gè)initialize方法向?qū)嵶兞恐屑尤肴笔≈?這樣一來,?inspect方法就有東西可說了.

    ruby>?class?Fruit
    ????|???def?initialize
    ????|?????@kind?=?"apple"
    ????|?????@condition?=?"ripe"
    ????|???end
    ????|?end
    ???nil
    ruby>?f4?=?Fruit.new
    ???"a?ripe?apple"?


    將缺省的變?yōu)樾枰?/b>

    很多時(shí)候,缺省值不會(huì)有太多的意思.真的是缺省那樣的水果嗎?也許在創(chuàng)造水果的時(shí)候?qū)ζ漕愋妥饕笫莻€(gè)更好的辦法.要這樣做,我們就必須給initialize?方法加入一個(gè)正式的參數(shù).因?yàn)橐恍┎粫?huì)在此提及的原因,你向?new?傳遞的參數(shù)實(shí)際上是遞給了initialize.

    ruby>?class?Fruit
    ????|???def?initialize(?k?)
    ????|?????@kind?=?k
    ????|?????@condition?=?"ripe"
    ????|???end
    ????|?end
    ???nil
    ruby>?f5?=?Fruit.new?"mango"
    ???"a?ripe?mango"
    ruby>?f6?=?Fruit.new
    ERR:?(eval):1:in?`initialize':?wrong?#?of?arguments(0?for?1)?


    彈性的初始化

    上面我們看到一旦一個(gè)參數(shù)被關(guān)聯(lián)到一個(gè)?initialize?方法上,就無法在避免錯(cuò)誤產(chǎn)生的情況下將其省掉.如果希望考慮周全,我們可以在給了參數(shù)的情況下使用它,否則使用缺省值.

    ruby>?class?Fruit
    ????|???def?initialize(?k="apple"?)
    ????|?????@kind?=?k
    ????|?????@condition?=?"ripe"
    ????|???end
    ????|?end
    ???nil
    ruby>?f5?=?Fruit.new?"mango"
    ???"a?ripe?mango"
    ruby>?f6?=?Fruit.new
    ???"a?ripe?apple"?


    可以在任何方法內(nèi)使用缺省參數(shù),而不僅僅是initialize.參數(shù)表(argument?list)必須以有缺省值的參數(shù)結(jié)尾.

    有時(shí),提供多種初始化對(duì)象方法是有益的.雖然已超出本教程的范圍,但Ruby提供了對(duì)象映象(object?reflection)和可變長(zhǎng)度的參數(shù)表(variable-length?argument?lists),這些都有效地促進(jìn)了方法重載.
    posted on 2007-02-08 16:58 無衣 閱讀(245) 評(píng)論(0)  編輯  收藏 所屬分類: rails
     
    主站蜘蛛池模板: 亚洲A∨无码无在线观看| 久久久久亚洲AV综合波多野结衣| 亚洲va国产va天堂va久久| 爱情岛论坛亚洲品质自拍视频网站| 久久久久久久久免费看无码| 亚洲av成人一区二区三区| 100000免费啪啪18免进| 亚洲va乱码一区二区三区| 久久久久久免费视频| 国产成人亚洲综合网站不卡| 24小时免费直播在线观看| 国产精品亚洲精品久久精品| 亚洲精品视频免费观看| 在线看片免费人成视频播| 久久久无码精品亚洲日韩京东传媒| 91精品免费不卡在线观看| 亚洲国产精品久久久久秋霞影院| 99久久99这里只有免费费精品| 亚洲中文无码av永久| 国产在线观看免费视频播放器| 全黄A免费一级毛片| 亚洲AV无码成人精品区天堂 | 亚洲天天在线日亚洲洲精| 3344免费播放观看视频| 亚洲精品无码少妇30P| 免费A级毛片无码A| 免费的全黄一级录像带| 国产精品亚洲专区在线观看| 国产免费久久精品久久久| 大地资源中文在线观看免费版 | 日本一道高清不卡免费| 精品免费久久久久国产一区| 亚洲黄色免费网站| 国产亚洲精品免费| 全部免费毛片在线播放| 久久久久久亚洲精品无码| 亚洲第一AV网站| 国产无遮挡色视频免费视频| 久久免费精品视频| 日韩欧美亚洲中文乱码| 亚洲欧洲免费视频|