ruby> class Fruit
| def initialize
| @kind = "apple"
| @condition = "ripe"
| end
| end
nil
ruby> f4 = Fruit.new
"a ripe apple"
將預設的變為需要的
很多時候,預設值不會有太多的意思.真的是預設那樣的水果嗎?也許在創造水果的時候對其類型作要求是個更好的辦法.要這樣做,我們就必須給initialize 方法加入一個正式的參數.因為一些不會在此提及的原因,你向 new 傳遞的參數實際上是遞給了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)