Ruby中的保护方法和私有方法与一般面向对象程序设计语言的一样吗?

Ruby

Ruby中的保护方法和私有方法与一般面向对象程序设计语言的概念有所区别,保护方法的意思是方法只能方法只能被定义这个方法的类自己的对象和子类的对象访问,私有方法只能被对象自己访问。

class Test
 def method1    #默认为公有方法
 …
 end

 protected  #保护方法
 def method2
 …
 end
 
 private  #私有方法
 def method3
 end

 public 
 def test_protected(arg) #arg是Test类的对象
  arg.method2   #正确,可以访问同类其他对象的保护方法
 end

 def test_private(arg) #arg是Test类的对象
  arg.method3  #错误,不能访问同类其他对象的私有方法
 end
end

obj1 = Test.new
obj2 = Test.new
  
obj1.test_protected(obj2)
obj1.test_private(obj2) 

可以看到,和C++/Java相比,Ruby提供了更好的封装性。

同类其他面试题 点击新一篇或旧一篇可浏览全部同类面试题

新一篇:
旧一篇:

你有答案? 你对以上面试题有意见? 你想发表你的见解? 写下来吧!你的分享将会让很多人受益!

相关面试题

·介绍一下Ruby的特点
·Ruby如何实现动态方法调用?
·Ruby如何进行文件操作? 请用代码表示
·Ruby如何创建一个线程?
·介绍一下Ruby的多线程处理

版权声明:本站大部分内容为原创! 另有少部分内容整理于网络,如需转载本站内容或关切版权事宜请联系站长。未经允许,严禁复制转载本站内容,否则将追究法律责任。 本站欢迎与同类网站建立友情链接,请联系QQ:176687814