La visibilidad de métodos en Ruby se refiere a que los métodos de instancia pueden ser públicos, privados o protegidos. Los métodos son públicos de forma predeterminada a menos que se declaren explícitamente como privados o protegidos. La visibilidad del método se usa en Ruby para lograr la abstracción de datos, es decir, mostrar solo la información requerida y ocultar los detalles de fondo.
La visibilidad del método depende de los tres tipos de modificadores de acceso de una clase en Ruby:
Modificador de acceso público
Los métodos de una clase que son públicos se pueden llamar fácilmente desde cualquier parte del programa.
Ejemplo 1
# program to illustrate public access modifier # defining class class Geeks # methods are public by default def publicMethod1 puts "publicMethod1 called!" end # using public keyword public def publicMethod2 puts "publicMethod2 called!" end end # creating the object obj = Geeks.new() # calling methods obj.publicMethod1() obj.publicMethod2()
Producción:
publicMethod1 called! publicMethod2 called!
En el programa anterior, se llaman dos métodos públicos publicMethod1()
y publicMethod2()
de la clase Geeks
.
Modificador de acceso protegido
Los métodos de una clase que se declaran protegidos solo pueden ser llamados desde la clase en la que se declara y las clases derivadas de ella.
Ejemplo :#2
# program to illustrate protected access modifier # super class class Parent # protected keyword protected # protected method # can not be called directly def protectedMethod puts "protectedMethod called!" end end # sub class class Geeks < Parent def publicMethod # protected method called in public method self.protectedMethod end end # creating object obj = Geeks.new # calling method obj.publicMethod
Producción:
protectedMethod called!
En el programa anterior, no se puede acceder directamente a la clase protectedMethod()
of Parent
, por lo que se llama desde la publicMethod()
clase derivada Geeks
.
Modificador de acceso privado
Los métodos de una clase que se declaran privados se llaman solo dentro de la clase, el modificador de acceso privado es el modificador de acceso más seguro.
Ejemplo :#3
# program to illustrate private access modifier # defining class class Geeks # private keyword private # private method # can not be called directly def privateMethod puts "privateMethod called!" end # public keyword public # public method def publicMethod # private method called in public method privateMethod end end # creating object obj = Geeks.new # calling method obj.publicMethod
Producción:
privateMethod called!
En el programa anterior, el privateMethod()
de la Geeks
clase no se puede llamar directamente. Por lo que se llama desde el publicMethod()
de la clase Geeks
.
Ahora veamos otro programa que demuestra la visibilidad del método.
Ejemplo :#4
# program to illustrate Method Visibility # super class class Parent private # private method def privateMethod puts "privateMethod called!" end protected # protected method def protectedMethod puts "protectedMethod called!" end public # public methods def publicMethod1 puts "publicMethod1 called!" end def publicMethod2 # protected method called in public method protectedMethod # private method called in public method privateMethod end end # sub class class Child < Parent # public method def publicMethod3 # protected method called in public method protectedMethod end end # creating object obj1 = Parent.new obj2 = Child.new # calling method puts "\nParent methods: \n" obj1.publicMethod1 obj1.publicMethod2 puts "\nChild methods: \n" obj2.publicMethod1 obj2.publicMethod3
Producción:
Parent methods: publicMethod1 called! protectedMethod called! privateMethod called! Child methods: publicMethod1 called! protectedMethod called!
Publicación traducida automáticamente
Artículo escrito por riturajsaha y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA