バランス属性がインスタンス変数(@balanceと思う)に直接アクセスしないようにコードを直接作成するにはどうすればよいですか?誰かが属性の意味を説明できるかインスタンス変数?クラス属性がインスタンス変数に直接アクセスできないようにするにはどうすればよいですか?
私はRubyを初めて使用していて、Rubyクラスについて学んでいます。この章では、私の目的は、インスタンス変数の概念を理解し、ゲッターとセッターのメソッドを実証し、インスタンスメソッドを使用する方法を理解し、カプセル化の概念を理解することです。
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'を読み込まないようにしたいのですか? –
"balance attribute"と "balance instance variable"を区別すると、その部分が混乱します。明確化の質問:あなたはRailsを使ってプログラミングしていますか?データベーステーブルの列の "バランス属性"ですか?そうでなければ、@ SergioTulentsevのように、なぜあなたはそれを区別したいのか分かりません。 'attr_accessor:balance'で作成されたgetterメソッドとsetterメソッドは、インスタンス変数(@balance)を取得して設定するためにサポートされています。 – Isaac