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...

面试题 相关文章推荐
PHP经典面试题
Sep 03 面试题
介绍一下#error预处理
Sep 25 面试题
解释一下Windows的消息机制
Jan 30 面试题
经典c++面试题三
Jul 08 面试题
索引覆盖(Index Covering)查询含义
Feb 18 面试题
什么是SQL Server的确定性函数和不确定性函数
Aug 04 面试题
密封类可以有虚函数吗
Aug 11 面试题
什么是索引指示器
Aug 20 面试题
linux面试题参考答案(11)
Nov 26 面试题
什么是Linux虚拟文件系统VFS
Jan 31 面试题
金额转换,阿拉伯数字的金额转换成中国传统的形式如:(¥1011)-> (一千零一拾一元整)输出
May 29 面试题
Java面试题:请说出如下代码的输出结果
Apr 22 面试题
给定一个时间点,希望得到其他时间点
Nov 07 #面试题
既然说Ruby中一切都是对象,那么Ruby中类也是对象吗
Jan 26 #面试题
为什么说Ruby是一种真正的面向对象程序设计语言
Oct 30 #面试题
Ruby如何定义一个类
Oct 08 #面试题
介绍一下Ruby中的对象,属性和方法
Jul 11 #面试题
解释一下ruby中的特殊方法与特殊类
Feb 26 #面试题
介绍一下Ruby的多线程处理
Feb 01 #面试题
You might like
发挥语言的威力--融合PHP与ASP
2006/10/09 PHP
php SQL防注入代码集合
2008/04/25 PHP
php explode函数实例代码
2012/02/27 PHP
解析使用substr截取UTF-8中文字符串出现乱码的问题
2013/06/20 PHP
Codeigniter操作数据库表的优化写法总结
2014/06/12 PHP
PHP使用ffmpeg给视频增加字幕显示的方法
2015/03/12 PHP
php 数组随机取值的简单实例
2016/05/23 PHP
javascript之学会吝啬 精简代码
2010/04/25 Javascript
JavaScript的Polymer框架中dom-repeat与VM的相关操作
2015/07/29 Javascript
Javascript刷新窗口方法小结
2015/10/21 Javascript
基于JS分页控件实现简单美观仿淘宝分页按钮效果
2016/11/07 Javascript
domReady的实现案例
2016/11/23 Javascript
NodeJS简单实现WebSocket功能示例
2018/02/10 NodeJs
JS调用安卓手机摄像头扫描二维码
2018/10/16 Javascript
Vue 子组件与数据传递问题及注意事项
2019/07/11 Javascript
前端vue如何使用高德地图
2020/11/05 Javascript
jquery实现淡入淡出轮播图效果
2020/12/13 jQuery
搞笑的程序猿:看看你是哪种Python程序员
2015/06/12 Python
举例讲解Python面相对象编程中对象的属性与类的方法
2016/01/19 Python
Python中struct模块对字节流/二进制流的操作教程
2017/01/21 Python
获取Django项目的全部url方法详解
2017/10/26 Python
用tensorflow实现弹性网络回归算法
2018/01/09 Python
python简单操作excle的方法
2018/09/12 Python
Django Form and ModelForm的区别与使用
2019/12/06 Python
详解django使用include无法跳转的解决方法
2020/03/19 Python
python 解决mysql where in 对列表(list,,array)问题
2020/06/06 Python
python实现数据结构中双向循环链表操作的示例
2020/10/09 Python
金牌葡萄酒俱乐部:Gold Medal Wine Club
2017/11/02 全球购物
Exoticca英国:以最优惠的价格提供豪华异国情调旅行
2018/10/18 全球购物
LORAC官网:美国彩妆品牌
2019/08/27 全球购物
Tomcat中怎么使用log4j输出所有的log
2016/07/07 面试题
五年级英语教学反思
2014/01/31 职场文书
大学生活动总结怎么写
2014/04/29 职场文书
副科级后备干部考察材料
2014/05/15 职场文书
2019最新激励员工口号大全!
2019/06/28 职场文书
小程序wx.getUserProfile接口的具体使用
2021/06/02 Javascript