这是一些代码:
class Person
def initialize(age)
@age = age
end
def age
@age
end
def age_difference_with(other_person)
(self.age - other_person.age).abs
end
protected :age
end
我想知道的是in@age
和self.age
inage_difference_with
方法之间的区别。
@age
直接写访问实例变量@age
。编写过程self.age
告诉对象向自己发送消息age
,该消息通常将返回实例变量@age
-但可以执行任何其他操作,具体取决于在age
给定子类中如何实现该方法。例如,您可能有一个MiddleAgedSocialite类,该类始终报告其年龄比实际年龄小10岁。或更实际地说,PersistentPerson类可能会从持久性存储中延迟读取该数据,并将其所有持久性数据缓存在哈希中。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句