Ruby => 方法限制


# -*- coding: utf-8 -*-

=begin
Ruby提供了3种限制层级(仅针对方法,变量不是通过此方式)
public =>将方法公开为外部可以使用的实例方法:
private =>将方法限制为只有内部可以使用(不允许接在接受者后面调用)
protected =>将方法限制为只有内部可以使用。另外,在同一个类中可以作为实例方法使用。
=end

class AccTest
def pub
# self.priv # => error
priv
self.proc
puts "pub is a public method."
end
public :pub # 将pub方法设定为public(不指定意义也一样)

def priv
puts "priv is a private method."
end
private :priv # 将priv方法设定为private

def proc # 将proc方法设定为protected
puts "proc is a protected method."
end
protected :proc

end

acc_test = AccTest.new
acc_test.pub # => priv is a private method.
# proc is a protected method.
# pub is a public method.
# acc_test.proc # eror




# -*- coding: utf-8 -*-

=begin
此文件定义了同时对方法做相同的限制访问
没有特别指定的方法都是public, 单initialize方法是例外,它会恒为private
protected 则可以从同一个类(与其子类)中以实例方法的方式调用,但无法从其他地方调用
=end

class AccTest
public # 没有指定实参的话
# 下面定义的所有方法都是public
def pub
puts "pub is a public method."
end

private # 下面定义的所有方法都是private
def priv
puts "priv is a private method."
end

end
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值