如何使我的代码工作,以便balance属性不直接访问实例变量(我相信它是@balance)?有人可以解释一个属性的含义访问一个实例变量?如何让我的类属性不能直接访问实例变量?
我刚刚开始使用Ruby,刚刚学习了Ruby类。在本章中,我的目标是理解实例变量的概念,向我们展示getter和setter方法,了解如何使用实例方法以及理解封装的概念。
class BankAccount
attr_accessor :balance
def initialize(balance)
@balance = balance
end
def withdraw(amount)
if (balance >= amount)
@balance = balance - amount
end
end
end
只要删除'attr_accessor'并添加您的'balance'方法的版本。 –
顺便说一句,从你的代码中不明显__at all__,你为什么要'balance'不读'@ balance'。 –
您将“余额属性”与“余额实例变量”区分开来,并且该部分很混乱。澄清问题:您是否使用Rails进行编程,并且是数据库表中列的“余额属性”?否则,就像@SergioTulentsev指出的那样,为什么你想要有一个区别并不明显。由'attr_accessor:balance'创建的getter和setter方法被SUPPOSED来获取和设置实例变量(它是@balance)。 – Isaac