stringtranslate.com

Instancia variable

En la programación orientada a objetos basada en clases , una variable de instancia es una variable definida en una clase (es decir, una variable miembro ), para la cual cada objeto instanciado de la clase tiene una copia separada, o instancia . [1] [2] Una variable de instancia tiene similitudes con una variable de clase , [3] pero no es estática . Una variable de instancia es una variable que se declara en una clase pero fuera de los constructores , métodos o bloques . Las variables de instancia se crean cuando se crea una instancia de un objeto y son accesibles para todos los constructores, métodos o bloques de la clase. Se pueden dar modificadores de acceso a la variable de instancia.

Una variable de instancia no es una variable de clase , [4] aunque existen similitudes. Ambos son un tipo de atributo de clase (o propiedad de clase, campo o miembro de datos). Si bien el valor de una variable de instancia puede diferir entre instancias de una clase, una variable de clase solo puede tener un valor a la vez, compartido entre todas las instancias. La misma dicotomía entre miembros de instancia y clase se aplica también a los métodos ("funciones miembro").

Cada variable de instancia vive en la memoria durante la vida útil del objeto que le pertenece. [5]

Las variables de instancia son propiedades de ese objeto. Todas las instancias de una clase tienen sus propias copias de variables de instancia, incluso si el valor es el mismo de un objeto a otro. Una instancia de clase puede cambiar los valores de sus variables de instancia sin afectar a todas las demás instancias. Una clase puede tener variables de instancia y variables de clase .

Las variables de instancia pueden ser utilizadas por todos los métodos de instancia de un objeto, pero no pueden ser utilizadas por los métodos de clase. Una variable de instancia también se puede cambiar directamente, siempre que se establezcan restricciones de acceso . [6]

Ejemplo

C++

Solicitud de estructura {   recuento int estático1 ; // el nombre de la variable no es importante int número ;      Pedido (); { número = recuento1 ; // modifica la variable de instancia "este->número" ++ count1 ; // modifica la variable de clase "Request::count1" }        };int Solicitud :: cuenta1 = 0 ;   

En este ejemplo de C++ , la variable de instancia Request::numberes una copia de la variable de clase Request::count1 donde a cada instancia construida se le asigna un valor secuencial de count1antes de incrementarse . Como numberes una variable de instancia, cada Requestobjeto contiene su propio valor distinto; por el contrario, sólo hay un objeto Request::count1disponible para todas las instancias de clase con el mismo valor.

Java

//Ejemplo.javaclase  Ejemplo { public int x = 0 ; public void setX ( int newValue ) { this . x = nuevoValor ; } }                //principal.javaclase  Principal { public static void main ( String [] args ) { Ejemplo ejemplo1 = nuevo Ejemplo (); Ejemplo ejemplo2 = nuevo Ejemplo (); //Podemos establecer el valor de x por sí solo, ya que la variable es pública ejemplo1 . x = 10 ; afirmar ejemplo1 . x == 10 ; afirmar ejemplo2 . x == 0 ; //Como setX es un método de instancia, también puede acceder a la variable ejemplo2 . establecerX ( -10 ) ; afirmar ejemplo1 . x == 10 ; afirmar ejemplo2 . x == - 10 ; } }                                            

En este ejemplo de Java , podemos ver cómo las variables de instancia se pueden modificar en una instancia sin afectar a otra.

Pitón

clase  Perro :  def  __init__ ( yo ,  raza ):  yo . raza  =  raza  # variable de instancia# dog_1 es un objeto # que también es una instancia de la clase Dog dog_1  =  Dog ( "Border Collie" )

En el código Python anterior , la variable de instancia se crea cuando se analiza un argumento en la instancia, con la especificación del argumento posicional de raza.

Referencias

  1. ^ "Variables de instancia en programación C++". Dremendo . Consultado el 8 de marzo de 2024 .
  2. ^ "Variables de Java". Geeks para Geeks . 2017-02-06 . Consultado el 8 de marzo de 2024 .
  3. ^ "El tutorial de Java, variables". docs.oracle.com . Oráculo. Archivado desde el original el 23 de octubre de 2014 . Consultado el 23 de octubre de 2014 .
  4. ^ "Diferencia entre variable de instancia y variable de clase". Geeks para Geeks . 2021-04-26 . Consultado el 8 de marzo de 2024 .
  5. ^ "Los tutoriales de Java, comprensión de los miembros de la clase". docs.oracle.com . Oráculo. Archivado desde el original el 11 de octubre de 2014 . Consultado el 23 de octubre de 2014 .
  6. ^ Matuszek, David. "Estático". cis.upenn.edu . Universidad de Pennsylvania. Archivado desde el original el 23 de octubre de 2014 . Consultado el 23 de octubre de 2014 .