Ruby 之 class 中的 private、 protected、public
Private
private 函数只能 在本类和子类的 上下文中调用,且只能通过self访问。
这个意思就是:private函数,只能在本对象内部访问到。
对象实例变量(@)的访问权限就是 private。
p t1.test_other(t2) #错误 in `test_other': private method `test' called for #<AccessTest:0x292c14> (NoMethodError)
Protected
protect 函数只能 在本类和子类的 上下文中调用,但可以使用 other_object.function的形式。(这跟 C++ 的 private 模式等同)
这个的关键是 protected函数可以在同类(含子类)的其它对象的内部中使用。
# Now make 'test' protect
class AccessTest
protected:test
end
p t1.test_other(t2) # other object test private
Public
public 函数可以在任何地方调用。成员函数和常量的默认访问权限就是public。
private 函数只能 在本类和子类的 上下文中调用,且只能通过self访问。
这个意思就是:private函数,只能在本对象内部访问到。
对象实例变量(@)的访问权限就是 private。
代码如下:
class AccessTest def test return “test private” end def test_other(other) “other object ”+ other.test end end t1 = AccessTest.new t2 = AccessTest.new p t1.test # => test private p t1.test_other(t2) # => other object test private # Now make 'test' private class AccessTest private :test end
p t1.test_other(t2) #错误 in `test_other': private method `test' called for #<AccessTest:0x292c14> (NoMethodError)
Protected
protect 函数只能 在本类和子类的 上下文中调用,但可以使用 other_object.function的形式。(这跟 C++ 的 private 模式等同)
这个的关键是 protected函数可以在同类(含子类)的其它对象的内部中使用。
# Now make 'test' protect
class AccessTest
protected:test
end
p t1.test_other(t2) # other object test private
Public
public 函数可以在任何地方调用。成员函数和常量的默认访问权限就是public。
相关推荐
敏敏张 2020-11-11
SCNUHB 2020-11-10
小木兮子 2020-11-11
wwwsurfphpseocom 2020-10-28
WasteLand 2020-10-18
Cocolada 2020-11-12
杜鲁门 2020-11-05
shirleypaddy 2020-10-19
qingmumu 2020-10-19
Testingba工作室 2020-09-15
周公周金桥 2020-09-13
专注前端开发 2020-08-16
emagtestage 2020-08-16
heniancheng 2020-08-15
hanjinixng00 2020-08-12
小方哥哥 2020-08-09
83327712 2020-07-30
卖小孩的咖啡 2020-07-21
wqiaofujiang 2020-07-05