zoukankan      html  css  js  c++  java
  • Ruby 访问控制

    “protected”和“private”之间的区别很微妙,如果方法是保护的,它可以被定义了该方法的类或其子类的实例所调用。如果方法是私有的,它只能在当前对象的上下文中被调用--不可能直接访问其他对象的私有方法,即便它与调用者都属同一个类的对象。

    Ruby和其他面向对象语言的差异,还体现在另一个重要的方面。访问控制实在程序运行时动态判定的,而非静态判定。只有当代码试图执行受阻的方法,你才会得到一个访问违规。

    有两种不同的方式定义函数的访问级别

    首先

    class MyClass

                 def method1  #default is 'public'

                    #...

                 end

          protected              #subsequent methods will be 'protected'

                  def method2  #will be 'proteced'

                     #...

                   end 

           private                 #subsequent methods will be 'private'

                  def method3  #will be 'private'

                     #...

                   end 

            public                  #subsequent methods will be 'public'

                  def method4  #will be 'public'

                     #...

                   end 

    end

    另外,你可以通过将方法名作为参数列表传入访问控制函数来设置它们的访问级别。

    class MyClass

      def method1

        #..

       end

    #...and so on

    public         :method1, :method2

    protected   :method3

    private         :method4

    end

  • 相关阅读:
    项目中的注意事项
    复合查询
    树型控件的处理(完整版)
    图的存储结构(邻接矩阵)
    图的定义与术语2 数据结构和算法55
    图的存储结构(邻接矩阵)
    赫夫曼编码 数据结构和算法52
    赫夫曼编码 数据结构和算法52
    图的存储结构(邻接矩阵)
    图的定义与术语 数据结构和算法54
  • 原文地址:https://www.cnblogs.com/timsheng/p/2592292.html
Copyright © 2011-2022 走看看