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

面试题 相关文章推荐
VC++笔试题
Oct 13 面试题
对于没有初始化的变量的初始值可以作怎样的假定
Oct 12 面试题
编程实现当输入某产品代码则打印出该产品记录的功能
May 03 面试题
托管代码(Managed Code)和非托管代码(Unmanaged Code)有什么区别
Sep 29 面试题
Can a struct inherit from another class? (结构体能继承类吗)
Jul 22 面试题
Linux如何为某个操作添加别名
Mar 01 面试题
what is the difference between ext2 and ext3
Nov 03 面试题
港湾网络笔试题
Apr 19 面试题
实体的生命周期
Aug 31 面试题
一些关于MySql加速和优化的面试题
Jan 30 面试题
JSP&Servlet技术面试题
May 21 面试题
JAVA软件工程师测试题
Jul 25 面试题
给定一个时间点,希望得到其他时间点
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 分页类(模仿google)-面试题目解答
2009/09/13 PHP
php通过正则表达式记取数据来读取xml的方法
2015/03/09 PHP
php实现的数组转xml案例分析
2019/09/28 PHP
javascript CSS画图之基础篇
2009/07/29 Javascript
jquery 之 $().hover(func1, funct2)使用方法
2012/06/14 Javascript
javascript 使用 NodeList需要注意的问题
2013/03/04 Javascript
JS获取当前网址、主机地址项目根路径
2013/11/19 Javascript
jQuery中data()方法用法实例
2014/12/27 Javascript
jQuery功能函数详解
2015/02/01 Javascript
javascript事件冒泡实例分析
2015/05/13 Javascript
JavaScript中数据结构与算法(五):经典KMP算法
2015/06/19 Javascript
Javascript中的作用域和上下文深入理解
2015/07/03 Javascript
js判断手机端(Android手机还是iPhone手机)
2015/07/22 Javascript
jquery实现点击向下展开菜单项(伸缩导航)效果
2015/08/22 Javascript
JS中使用mailto实现将用户在网页中输入的内容传递到本地邮件客户端
2016/10/08 Javascript
高性能的javascript之加载顺序与执行原理篇
2018/01/14 Javascript
Vue cli+mui 区域滚动的实例代码
2018/01/25 Javascript
浅谈Node.js 中间件模式
2018/06/12 Javascript
JavaScript引用类型Function实例详解
2018/08/09 Javascript
Vant的安装和配合引入Vue.js项目里的方法步骤
2018/12/05 Javascript
javascript实现导航栏分页效果
2019/06/27 Javascript
将RGB值转换为灰度值的简单算法
2019/10/09 Javascript
浅谈webpack和webpack-cli模块源码分析
2020/01/19 Javascript
vue总线机制(bus)知识点详解
2020/05/10 Javascript
基于VSCode调试网页JavaScript代码过程详解
2020/07/20 Javascript
[44:40]Spirit vs Navi Supermajor小组赛 A组败者组第一轮 BO3 第一场 6.2
2018/06/03 DOTA
python爬虫之BeautifulSoup 使用select方法详解
2017/10/23 Python
Windows系统Python直接调用C++ DLL的方法
2019/08/01 Python
Django中URL的参数传递的实现
2019/08/04 Python
Python利用全连接神经网络求解MNIST问题详解
2020/01/14 Python
python3字符串输出常见面试题总结
2020/12/01 Python
小学生作文评语
2014/04/18 职场文书
2014年银行年终工作总结
2014/12/19 职场文书
浅谈golang package中init方法的多处定义及运行顺序问题
2021/05/06 Golang
Java8中接口的新特性使用指南
2021/11/01 Java/Android
MYSQL如何查看进程和kill进程
2022/03/13 MySQL