论坛首页 编程语言技术论坛

Ruby 方法的访问控制

浏览 2375 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-05-11  

  Ruby要改变一个对象的内部状态,唯一的简单方式就是调用它的方法。控制对方法的访问,就可以控制对对象访问。Ruby
 提供了三种访问控制方式:
    public 方法可以被任何人调用,没有限制访问控制。方法默认是public的(除initialize外)
   
    protected 方法只能被定义了该方法的类或其子类的对象所调用。这个家族均可访问
   
    private 方法不能被明确的接收者调用,其接受者只能self。这个私有方法只能在当前对象的上下文中被调用。
   
    注意:访问控制是在程序运行的时候动态判定的,而非静态判定,只有当代码试图执行受限制的方法,才会抛出异常。
    我们通过public、protected、private三个函数来为类或模块定义内的方法指定访问级别。这里有两种方式使用函数:
     1、使用时没有参数

ruby 代码
  1. class Test   
  2.      
  3.   public   
  4.      def method1   
  5.     .......   
  6.      end  
  7.   
  8.  private   
  9.      def method2   
  10.     ........   
  11.     end  
  12.   
  13. protected   
  14.      def method3   
  15.     ........   
  16.     end  
  17.   
  18. end  


     2、通过将方法名作为参数列表传入控制访问函数来设置访问级别。

ruby 代码
  1. class Test      
  2.      
  3.     public :method1      
  4.     private :method2      
  5.    protected :method3      
  6. end    
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics