class BankAccount
attr :dollars, true
def deposit(x)
self.dollars+=x
end
def withdraw(x)
self.dollars=[0, dollars-x].max
end
def initialize
self.dollars=0
end
end
account=BankAccount.new
account.dollars=200
p account.dollars # 200
account.deposit 50
p account.dollars # 250
account.withdraw 100
p account.dollars # 150
account.withdraw 200
p account.dollars # 0
class StockAccount < BankAccount
attr :numShares, true
attr :pricePerShare, true
def dollars
self.numShares self.pricePerShare
end
def dollars=(x)
self.numShares=(Float x)/self.pricePerShare
end
def initialize
self.numShares=10
self.pricePerShare=30
end
end
stock=StockAccount.new
p stock.numShares # 10
p stock.pricePerShare # 30
p stock.dollars # 300
stock.dollars=150
p stock.numShares # 5.0
stock.dollars=600
p stock.dollars # 600.0
p stock.numShares # 20.0
stock.deposit 60
p stock.dollars # 660.0
p stock.numShares # 22.0
このページを編集 (1009 bytes)
| 以下の 3 ページから参照されています。 |
This page has been visited 2919 times.