Variables de instancia en Ruby

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *