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

面试题 相关文章推荐
Yahoo-PHP面试题3
Jan 14 面试题
大唐电信科技股份有限公司java工程师面试经历
Dec 09 面试题
某公司的.net工程师面试题笔试题
Nov 22 面试题
恶意软件的定义
Nov 12 面试题
可以使用抽象函数重写基类中的虚函数吗
Jun 02 面试题
C#实现启动一个进程
Oct 01 面试题
使用C#编写创建一个线程的代码
Jan 22 面试题
Solaris操作系统的线程机制
Jul 28 面试题
Ajxa常见问题都有哪些
Mar 26 面试题
请说出这段代码执行后a和b的值分别是多少
Mar 28 面试题
JPA的优势都有哪些
Jul 04 面试题
Delphi笔试题
Nov 14 面试题
给定一个时间点,希望得到其他时间点
Nov 07 #面试题
既然说Ruby中一切都是对象,那么Ruby中类也是对象吗
Jan 26 #面试题
为什么说Ruby是一种真正的面向对象程序设计语言
Oct 30 #面试题
Ruby如何定义一个类
Oct 08 #面试题
介绍一下Ruby中的对象,属性和方法
Jul 11 #面试题
解释一下ruby中的特殊方法与特殊类
Feb 26 #面试题
介绍一下Ruby的多线程处理
Feb 01 #面试题
You might like
如何在smarty中增加类似foreach的功能自动加载数据
2013/06/26 PHP
php+ajax实现无刷新的新闻留言系统
2020/12/21 PHP
PHP常见漏洞攻击分析
2016/02/21 PHP
php单链表实现代码分享
2016/07/04 PHP
PHP递归实现汉诺塔问题的方法示例
2017/11/25 PHP
thinkphp5框架结合mysql实现微信登录和自定义分享链接与图文功能示例
2019/08/13 PHP
PHP高并发和大流量解决方案整理
2019/12/24 PHP
jquery(live)中File input的change方法只起一次作用的解决办法
2011/10/21 Javascript
javascript实现文字图片上下滚动的具体实例
2013/06/28 Javascript
开源的javascript项目Kissy介绍
2014/11/28 Javascript
JavaScript中的Math.LOG2E属性使用详解
2015/06/14 Javascript
详解Node.js包的工程目录与NPM包管理器的使用
2016/02/16 Javascript
js获取页面及个元素高度、宽度的代码
2016/04/26 Javascript
jquery仿微信聊天界面
2017/05/06 jQuery
微信小程序开发之toast等弹框提示使用教程
2017/06/08 Javascript
form表单序列化详解(推荐)
2017/08/15 Javascript
vue.js中引入vuex储存接口数据及调用的详细流程
2017/12/14 Javascript
使用layer模态框给新页面传值的方法
2019/09/27 Javascript
小程序实现列表展开收起效果
2020/07/29 Javascript
python网络爬虫采集联想词示例
2014/02/11 Python
python网络编程示例(客户端与服务端)
2014/04/24 Python
Python Tkinter基础控件用法
2014/09/03 Python
Python3中常用的处理时间和实现定时任务的方法的介绍
2015/04/07 Python
Python的collections模块中的OrderedDict有序字典
2016/07/07 Python
python3 爬取图片的实例代码
2018/11/06 Python
python2和python3的输入和输出区别介绍
2018/11/20 Python
python-jwt用户认证食用教学的实现方法
2021/01/19 Python
美国内衣第一品牌:Hanes(恒适)
2016/07/29 全球购物
当我正在为表建立索引的时候,SQL Server 会禁止对表的访问吗
2014/04/28 面试题
简述使用ftp进行文件传输时的两种登录方式?它们的区别是什么?常用的ftp文件传输命令是什么?
2016/11/20 面试题
高分子材料个人求职信范文
2013/09/25 职场文书
中专毕业生自荐信范文
2013/11/28 职场文书
小学一年级评语大全
2014/04/22 职场文书
2014年个人售房协议书
2014/10/30 职场文书
CSS3点击按钮圆形进度打钩效果的实现代码
2021/03/30 HTML / CSS
windows server2016安装oracle 11g的图文教程
2022/07/15 Servers