1、 局部变量
class School
count=100
def student
count=50
puts count
end
puts count
end
s=School.new
s.student
代码结果
100
50
在类定义的局部作用域中,初始化变量count,所处的局部作用域与方法定义中的变量count不同,在方法定义之后,输出 50,就回到了类定义的局部变量作用域中,与此同时boy需要在创建实例school之后,然后才能发送消息。
2、实例变量
class School
def student
@count=50
puts @count
end
@count=100
end
s=School.new.student
代码结果
50
大家可能会认为输出100,但是虽然变量名称相同,又都是实例变量,但是彼此无关,它们属于不同的对象。
3、类变量
思路:学生总数
class School
@@total_count=0
def initialize(name)
@@total_count+=1
end
def self.total_count
@@total_count
end
end
z=School.new(“张三”)
w=Schoo.new(“李四”)
School.total_count
代码结果 2
类变量提供了可以在类和实例之间可以共享数据的存储机制。