如何使我的代碼工作,以便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