本帖最后由 candy2266 于 2012-10-18 12:21 编辑
实例变量
引用楼上的话:
好了。。下面都是是重点了。。。。。
实例变量主要是用来记录单个对象的状态。
RM实例变量有以下特点:
•以@开头
•只对单个对象可见
•不管在类的任何地方定义,在别的地方使用都是同一个
注意第2条,第2条的意思可以引申为,在别的对象外,若要访问实例变量的话,必需要通过方法访问。
class Person @name="xx君" end
class Person
@name="xx君"
end
如果只是在上例子的对象里“参考”@name,这样定义就可以了。
但是如果想从对象外访问它的话,那么就不可以了。
在类下直接定义一个@的实例变量,个人感觉类似于JAVA中的private修饰符,必需用方法访问。
所以若要在外部访问到@name,代码应如下
class Preson #下面是从实例中取得@name值的方法 def name @name end #下面是给name赋值的方法 def name=(value) @name=value end
class Preson
#下面是从实例中取得@name值的方法
def name
@name
end
#下面是给name赋值的方法
def name=(value)
@name=value
end
当然真的直接写在类里变量,我们用的是类变量,这样就可以在外部直接访问到它的值了。
class Person @@name="xx君" #类变量首字母以@@开头 end
class Person
@@name="xx君" #类变量首字母以@@开头
end
|