- class Test
- def method1 #默认为公有方法
- puts "This is a public method"
- end
- protected #保护方法
- def method2
- puts "This is a protected method"
- end
-
- private #私有方法
- def method3
- puts "This is a private method"
- end
- public
- def test_protected(arg) #arg是Test类的对象
- arg.method2 #正确,可以访问同类其他对象的保护方法
- end
- def test_private(arg) #arg是Test类的对象
- #arg.method3 #错误,不能访问同类其他对象的私有方法
- puts "don't call obj's private method"
- end
- end
- obj1 = Test.new
- obj2 = Test.new
- obj1.test_protected(obj2)
- class Test
- def method2
- puts "This is a new protected method1"
- end
- end
- #
- obj1.test_protected(obj2)
Ruby可以动态修改类的存取类型,重新修改方法,非常灵活。
阅读(588) | 评论(0) | 转发(0) |