Hay cuatro tipos diferentes de variables en Ruby: variables locales, variables de instancia, variables de clase y variables globales. Una variable de instancia en Ruby tiene un nombre que comienza con el símbolo @ y su contenido está restringido a lo que sea que se refiera al objeto en sí. Dos objetos separados, aunque pertenezcan a la misma clase, pueden tener valores diferentes para sus variables de instancia.
Estas son algunas de las características de las variables de Instancia en Ruby:
- La variable de instancia tiene el valor nulo antes de la inicialización.
- Todas las variables de instancia son privadas por defecto.
- Solo se puede acceder a las variables de instancia de un objeto mediante los métodos de instancia de ese objeto.
- Las variables de instancia de Ruby no necesitan una declaración. Esto implica una estructura de objeto flexible.
- Cada variable de instancia se agrega dinámicamente a un objeto cuando se hace referencia a él por primera vez.
- Una variable de instancia pertenece al propio objeto (cada objeto tiene su propia variable de instancia de esa clase en particular)
- Un objeto de instancia puede alterar los valores de sus variables de instancia sin modificar ninguna otra instancia.
- Varios métodos de clase pueden usar una variable de instancia, excepto cuando el método se considera estático.
Ejemplo 1:
# Ruby program to illustrate instance variables using constructor class Geek # constructor def initialize() # instance variable @geekName = "R2J" end # defining method displayDetails def displayDetails() puts "Geek name is #@geekName" end end # creating an object of class Geeks obj=Geek.new() # calling the instance methods of class Geeks obj.displayDetails()
Producción:
Geek name is R2J
En el programa anterior, geekName es la variable de instancia inicializada mediante un constructor y se accede mediante el método de instancia displayDetails() de la clase Geek.
Veamos otro programa para ilustrar el uso de variables de instancia en Ruby:
Ejemplo #2:
# Ruby program to illustrate instance variables using instance methods class Geek # defining instance method getAge def getAge(n) # instance variable @geekAge = n end # defining instance method incrementAge def incrementAge() @geekAge +=1 end # defining instance method displayDetails def displayDetails() puts "Geek age is #@geekAge" end end # creating an object of class Geeks obj = Geek.new # calling the instance methods of class Geeks obj.getAge(20) obj.displayDetails() obj.incrementAge() obj.displayDetails()
Producción:
Geek age is 20 Geek age is 21
En el programa anterior, geekAge es la variable de instancia inicializada en el método de instancia getAge() , aquí también se accede a geekAge mediante otros dos métodos de instancia incrementAge() y displayDetails() en los que el método incrementAge() modifica el valor de geekAge y displayDetails( ) se utiliza para mostrar el valor de geekAge.
Publicación traducida automáticamente
Artículo escrito por riturajsaha y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA