ruby作用域 - 局部变量 实例变量 类变量

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

类变量提供了可以在类和实例之间可以共享数据的存储机制。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值