Ruby中的私有类

Ruby| 私有班

在本教程中,我们将看到Ruby中的私有类概念。尽管在Ruby中,私有类的概念与其他语言相比还是有些不同。我们将在其余内容中借助语法和示例来理解私有类的概念。

在Ruby语言中,存在诸如privateprotectedpublic之类的关键字,但是在使用我们以前用其他语言获得的类时,它们没有提供任何帮助。

通过在程序代码中调用它们的方式来区分它们,因为在Ruby中所有类都被视为对象。私有类可以理解为子类,它们是在私有常量的帮助下声明的。如果要访问私有类,则必须使用外部类。如果某个类被声明为私有,则永远不能使用显式接收器来调用它,您将始终必须使用隐式接收器来调用它们。Ruby不允许您将外部类设为私有。

语法:

    private_constant: class_name

范例1:

=begin
  Ruby program to demonstrate private classes
=end	

class Outer
  class Inner
    def prnt1
      puts "Hello from Nhooo.com"
    end
  
    def prnt2
      puts "Corona Go! Go Corona"
    end
  end
  private_constant :Inner
end

Object1 = Outer::Inner.new
Object1.prnt2

输出结果

private constant Outer::Inner referenced
(repl):18:in `<main>'

说明:

在上面的代码中,您可以观察到解释器抛出错误,因为我们是显式用户并且无法以这种方式访问它们。

如何在外部类的帮助下访问私有类?

范例2:

=begin
  Ruby program to demonstrate private classes
=end	

class Outer
  class Inner
    def prnt1
      puts "Hello from Nhooo.com"
    end
  
    def prnt2
      puts "Corona Go! Go Corona"
    end
  end
    private_constant :Inner
    def ob
      ob1 = Inner.new
      ob1.prnt1
      ob1.prnt2
    end
end

Object1 = Outer.new
Object1.ob

输出结果

Hello from Nhooo.com
Corona Go! Go Corona

说明:

在上面的代码中,您可以观察到如何在公共类的帮助下访问私有类或子类?我们创建了一个公共方法ob,在其中创建私有类Inner的实例,并在该实例或对象的帮助下调用其方法。这是访问内部类或私有类的唯一方法。