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


Posted in 面试题 onMay 01, 2013
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提供了更好的封装性。

Tags in this post...

面试题 相关文章推荐
C语言笔试集
Jul 24 面试题
C语言编程题
Mar 09 面试题
估算杭州有多少软件工程师
Aug 11 面试题
金山毒霸系列的笔试题
Apr 13 面试题
什么是数据抽象
Nov 26 面试题
触发器(trigger)的功能都有哪些?写出一个触发器的例子
Sep 17 面试题
一些.net面试题
Oct 06 面试题
如何为DataGridView添加一个定制的Column Type
Jan 21 面试题
ShellScript面试题一则-ShellScript编程
Mar 05 面试题
Shell编程面试题
May 29 面试题
测试驱动开发的主要步骤是什么
Dec 10 面试题
EJB需直接实现它的业务接口或Home接口吗,请简述理由
Nov 23 面试题
给定一个时间点,希望得到其他时间点
Nov 07 #面试题
既然说Ruby中一切都是对象,那么Ruby中类也是对象吗
Jan 26 #面试题
为什么说Ruby是一种真正的面向对象程序设计语言
Oct 30 #面试题
Ruby如何定义一个类
Oct 08 #面试题
介绍一下Ruby中的对象,属性和方法
Jul 11 #面试题
解释一下ruby中的特殊方法与特殊类
Feb 26 #面试题
介绍一下Ruby的多线程处理
Feb 01 #面试题
You might like
曾在DC漫画界反派角色扮演的演员,谁才是你心目中的小丑之王?
2020/04/09 欧美动漫
世界咖啡生产者论坛呼吁:需要立即就咖啡价格采取认真行动
2021/03/06 咖啡文化
将PHP作为Shell脚本语言使用
2006/10/09 PHP
用PHP4访问Oracle815
2006/10/09 PHP
PHP 数组排序方法总结 推荐收藏
2010/06/30 PHP
PHP实现二叉树的深度优先与广度优先遍历方法
2015/09/28 PHP
ThinkPHP框架安全实现分析
2016/03/14 PHP
PHP性能优化大全(php.ini)
2016/05/20 PHP
Yii2主题(Theme)用法详解
2016/07/23 PHP
Yii2语言国际化自动配置详解
2018/08/22 PHP
JS使用eval()动态创建变量的方法
2016/06/03 Javascript
JS双击变input框批量修改内容
2016/12/12 Javascript
基于Angular.js实现的触摸滑动动画实例代码
2017/02/19 Javascript
AngularJS 将再发布一个重要版本 然后进入长期支持阶段
2018/01/31 Javascript
JS中用EL表达式获取上下文参数值的方法
2018/03/28 Javascript
js最实用string(字符串)类型的使用及截取与拼接详解
2019/04/26 Javascript
JS浮点数运算结果不精确的Bug解决
2019/08/01 Javascript
微信小程序canvas实现签名功能
2021/01/19 Javascript
python 获取文件列表(或是目录例表)
2009/03/25 Python
利用python实现数据分析
2017/01/11 Python
Python初学者常见错误详解
2019/07/02 Python
Python提取PDF内容的方法(文本、图像、线条等)
2019/09/25 Python
Python 异常处理Ⅳ过程图解
2019/10/18 Python
django模型类中,null=True,blank=True用法说明
2020/07/09 Python
Jowissa官方网站:瑞士制造的手表,优雅简约的设计
2020/07/29 全球购物
内科护士实习自我鉴定
2013/10/17 职场文书
大学生作弊检讨书
2014/02/19 职场文书
业务员的岗位职责
2014/03/15 职场文书
广告学专业求职信
2014/06/19 职场文书
三问三解心得体会
2014/09/05 职场文书
法制教育主题班会
2015/08/13 职场文书
餐饮行业关注的9大营销策略
2019/08/26 职场文书
python批量更改目录名/文件名的方法
2021/04/18 Python
图解上海144收音机
2021/04/22 无线电
微信小程序scroll-view不能左右滑动问题的解决方法
2021/07/09 Javascript
Qt数据库应用之实现图片转pdf
2022/06/01 Java/Android