Ruby要改变一个对象的内部状态,唯一的简单方式就是调用它的方法。控制对方法的访问,就可以控制对对象访问。Ruby
提供了三种访问控制方式:
public 方法可以被任何人调用,没有限制访问控制。方法默认是public的(除initialize外)
protected 方法只能被定义了该方法的类或其子类的对象所调用。这个家族均可访问
private 方法不能被明确的接收者调用,其接受者只能self。这个私有方法只能在当前对象的上下文中被调用。
注意:访问控制是在程序运行的时候动态判定的,而非静态判定,只有当代码试图执行受限制的方法,才会抛出异常。
我们通过public、protected、private三个函数来为类或模块定义内的方法指定访问级别。这里有两种方式使用函数:
1、使用时没有参数
ruby 代码
- class Test
-
- public
- def method1
- .......
- end
-
- private
- def method2
- ........
- end
-
- protected
- def method3
- ........
- end
-
- end
2、通过将方法名作为参数列表传入控制访问函数来设置访问级别。
ruby 代码
- class Test
-
- public :method1
- private :method2
- protected :method3
- end
分享到:
- 2007-05-11 17:02
- 浏览 1852
- 评论(0)
- 论坛回复 / 浏览 (0 / 2376)
- 查看更多
相关推荐
SketchUp Ruby API 提供了对模型的访问和操作方法,包括: * 模型的创建和管理 * 模型的属性和设置 * 模型的选取和操作 * 模型的便捷操作 AttributeDictionary SketchUp Ruby API 提供了对属性词典的访问和操作...
在查找学习资源时,建议访问专业的Ruby社区或者官方文档网站,比如Ruby官方网站、Ruby on Rails官网、以及Stack Overflow等问答社区。同时,可利用在线教程、课程视频、图书等资源进行系统学习。 如果在学习过程中...
action_access, 面向 Ruby on Rails的访问控制系统 操作访问 动作存取为模块,concise concise,真正收费使用访问控制系统的Access 。 它允许安全地保护应用程序和处理权限。关注当前用户可以访问的操作,而不是干扰...
- **封装与访问控制**:讲解如何合理地隐藏对象的内部状态,保护数据安全。 5. **异常处理**:介绍异常的基本概念,以及如何使用`begin`, `rescue`, `ensure`等关键字来捕获和处理异常情况。 #### 三、高级特性篇...
- **非确定性上下文切换**:线程之间的切换是由Ruby虚拟机(VM)控制的,这种切换是非确定性的,意味着无法预测何时会发生上下文切换。 #### 线程生命周期 - **创建线程**:使用`Thread.new`创建一个新的线程对象...
- **安全性**:DRb提供了基于IP地址的访问控制列表(ACL)的安全性支持。 #### 四、获取DRb DRb的核心类包含在Ruby的标准库中。完整的DRb包可以从官方网站下载: - [官方网站](http://www2a.biglobe.ne.jp/~seki/...
在 Windows 系统上安装 Ruby 可以通过访问 Ruby 官方网站下载安装程序。安装过程中需要注意选择合适的编译器支持,以便能够顺利编译 Ruby 扩展模块。 安装完成后,可以通过命令提示符或 PowerShell 来验证 Ruby ...
- **下载RVM/chruby**:访问官方网站获取安装指南,根据你的操作系统选择合适的安装方法。 - **安装Ruby**:使用RVM或chruby,输入相应的命令来安装所需的Ruby版本。例如,安装Ruby 1.8.6,你可能会运行`rvm ...
- 块是Ruby中的匿名函数,由`do..end`或花括号`{}`定义,可以与方法一起使用。 - 闭包是指能够访问其定义时作用域的变量的块,即使在块被调用时该作用域已不存在。 8. ** Proc和Lambda** - `Proc`和`lambda`都是...
- **访问控制**:Ruby支持三种不同级别的访问控制:公共(`public`)、受保护(`protected`)和私有(`private`)。 ##### 4. 单例方法 - **定义**:单例方法是在特定对象实例上定义的方法,而不是在类级别定义的...
变量分为局部变量、全局变量、实例变量和类变量,每种变量的作用域和生命周期不同,提供了灵活的数据封装和访问控制。 **常量**以大写字母开头,尽管Ruby允许对常量进行重新赋值,但这将触发警告,强调常量应保持...
关于Ruby的安装,你可以访问Ruby官方网站(https://www.ruby-lang.org/zh/)下载适合你操作系统的安装包。Windows用户可以选择RubyInstaller,Mac用户可以通过Homebrew安装,Linux用户可以在终端输入相应的包管理器...
除此之外,Ruby的Gem生态系统是其强大之处,包含了数万个第三方库,涵盖了各种用途,如Web开发框架Rails,数据库访问库ActiveRecord,测试工具RSpec等。 在"testwww"这个文件名中,"test"可能是一个示例项目或者...
本开发文档将深入探讨Ruby的核心概念、语法特性、类与对象、方法、模块和混合、数组、哈希、控制结构、异常处理、文件与目录操作、Gem包管理、测试框架等内容,帮助开发者全面理解和掌握Ruby编程。 1. **核心概念**...
本"Ruby不完全读书指南"将深入探讨这些概念,并通过实例解析Ruby的使用方法,无论你是初学者还是有一定经验的开发者,都能从中受益。阅读这份指南,你将学会如何利用Ruby的强大功能,编写出高效、优雅的代码。
3. `ruby_core_source-0.1.5.gem`:这个组件提供了对Ruby内核源码的访问,使得调试器可以获取到关于Ruby内部操作的详细信息。这对于深入理解Ruby引擎的工作原理,以及调试涉及到Ruby核心部分的问题非常有帮助。 ...