嗨,我坚持定义实例方法。教程问:
在返回余额的 BankAccount 类中定义一个称为 balance 的方法。
代码有:
class BankAccount
def initialize(balance)
@balance = balance
end
# your code here
end
我真的很困惑这个问题在问什么。任何帮助,将不胜感激...
嗨,我坚持定义实例方法。教程问:
在返回余额的 BankAccount 类中定义一个称为 balance 的方法。
代码有:
class BankAccount
def initialize(balance)
@balance = balance
end
# your code here
end
我真的很困惑这个问题在问什么。任何帮助,将不胜感激...
本教程要求您为该类定义一个“ getter
” :BankAccount
class BankAccount
def initialize(balance)
@balance = balance
end
def balance
@balance # remember that the result of last sentence gets returned in ruby
end
end
然后,你可以做
bankAccount = BankAccount.new 22 # the value 22 is the balance that gets passed to initialize
bankAccount.balance # 22
现在,如果教程要求的是一个类方法(对我来说不是很清楚),你应该这样做:
def self.balance # self is here so you define the method in the class
@balance
end
然后你可以做BankAccount.balance
好的,我们来看示例代码:
class BankAccount
def initialize(balance)
@balance = balance
end
# your code here
end
在这里,您正在定义一个BankAccount
类,该类定义将通过以下方式在创建对象BankAccount#initialize
时自动调用的方法(也称为构造函数):BankAccount
BankAccount::new
BankAccount.new( 123 )
在上面的例子@balance
中将设置为123
. @balance
是一个实例变量(注意@
名称前面的),这意味着您可以在您定义的任何方法中按对象访问它。
要返回该变量,如练习所要求的,您可以return
在BankAccount#balance
方法中使用关键字,如下所示:
def balance
return @balance
end
Ruby 语法还允许您省略return
(因为它旨在始终从方法返回最后评估的表达式),从而获得更简洁的语法:
def balance
@balance
end
对于这种getter 方法(= 返回实例变量的方法),有一个简单的实用程序:attr_reader
您可以按如下方式使用:
class BankAccount
attr_reader :balance
def initialize(balance)
@balance = balance
end
end
但别担心,您可能很快就会了解上述内容。快乐学习。
class BankAccount
attr_reader :balance
def initialize(balance)
@balance = balance
end
end
添加 attr_reader :balance