題目:
定義一個類BookInStock
,它表示一本書,這本書擁有ISBN編號isbn
和一個用浮點數表示的價格price
作爲屬性。構造函數應該接受ISBN號碼(一個字符串)作爲第一個參數,價格作爲第二個參數,並且當這個ISBN號碼是空字符串或者當價格小於等於0時觸發ArgumentError(一個Ruby內置的異常類型)。
你要爲這些屬性編寫恰當的getter和setter。編寫一個方法price_as_string
,它返回開頭帶有美元號、結尾帶有一些0的這本書的價格,也就是說,價格20應該顯示爲"$20.00",價格33.8應該顯示爲"$33.80"。
思路:
1.Ruby中的構造函數爲initialize,可以在實例對象時定義isbn和price這兩個屬性
2.由於isbn爲空或者價格不大於0時拋出異常,要注意這個條件的判斷
3.輸出時對價格進行一定格式的變換,這個時候使用到了format方法
代碼:
我寫的代碼如下,歡迎拍磚。
class BookInStock
def initialize(isbn, price)
@isbn = isbn
@price = price
if (isbn == "") || (price <= 0)
raise(ArgumentError)
end
end
def price_as_string
p format("$%.2f", @price).to_s
end
end
example = BookInStock.new(12345, 11)
example.price_as_string