我有点难以理解Ruby类的运作。我了解课堂内部发生的一切,但是这是课堂的变量赋值和调用,让我感到困惑。Ruby类困惑
class BankAccount
def initialize(name)
@transactions = []
@balance = 0 #
end
def deposit
print "How much would you like to deposit?"
amount = gets.chomp
@balance += amount.to_f
puts "$#{amount} deposited."
end
def show_balance
puts "Your balance is #{@balance}."
end
end
bank_account = BankAccount.new("James Dean")
bank_account.class
bank_account.deposit
bank_account.show_balance
当我们做...
bank_account = BankAccount.new("James Dean")
...它好像每当我打电话BANK_ACCOUNT,它将使用。新的方法(我带领相信激活初始化方法)创建一个具有给定名称的新帐户。
然后,根据我所了解的,当我们在bank_account上调用.class时,它只输出类的类型。
但是,接下来我们调用bank_account.deposit。虽然,我的印象是,每当我们现在称之为BANK_ACCOUNT,它会创建一个使用BankAccount的新帐户...所以做bank_account.deposit,我设想它实际上做的是:
BankAccount.new("James Dean").deposit
因此,如果我进行两次存款(或者甚至使用bank_account.show_balance),那么从我的理解来看,每次使用bank_account变量时,都会重复创建名称为James Dean的新帐户。 (因为bank_account = BankAccount.new)
任何人都可以帮我明白这一点,并理解它好一点吗?
此外,只是一个侧面说明,我们可以永远使用:
BankAccount.new(gets.chomp)
,使我们可以根据用户输入创建名新帐户?
(感谢大家。这是我的第三个问题,我的前两次显然已经被张贴在错误的地方。-_-希望我有这个权利。)
'BankAccount.new(gets.chomp)' - 可以但不应该 – gaussblurinc