题目:
定义一个类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