您好我坚持定义实例方法。教程问:
在BankAccount类中定义一个名为balance的方法,该方法返回余额。
代码有:
class BankAccount
def initialize(balance)
@balance = balance
end
# your code here
end
我真的很困惑这个问题是什么。任何帮助将不胜感激......
答案 0 :(得分:2)
本教程要求您为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
答案 1 :(得分:1)
好的,我们来看一下示例代码:
class BankAccount
def initialize(balance)
@balance = balance
end
# your code here
end
在这里,您要定义一个BankAccount
类,它定义BankAccount#initialize
方法(也称为构造函数),通过{{1}创建BankAccount
对象时将自动调用该方法}:
BankAccount::new
在上面的示例中,BankAccount.new( 123 )
将设置为@balance
。 123
是一个实例变量(请注意名称前的@balance
),这意味着您可以在定义的任何方法中访问 per-object 。
要返回该变量,请按照练习要求,使用@
方法中的关键字return
,如下所示:
BankAccount#balance
Ruby语法还允许您省略def balance
return @balance
end
(因为它总是从方法返回最后一个计算的表达式),从而导致更简洁的语法:
return
对于这种 getter-methods (=返回实例变量的方法),有一个简单的实用工具:def balance
@balance
end
,您可以按如下方式使用:
attr_reader
但别担心,你很快就会了解上述情况。 快乐学习。
答案 2 :(得分:0)
class BankAccount
attr_reader :balance
def initialize(balance)
@balance = balance
end
end
添加attr_reader:balance