stringtranslate.com

Variable de instancia

En la programación orientada a objetos y 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 instancia 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. Ambas 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 en cualquier momento, compartido entre todas las instancias. La misma dicotomía entre miembros de instancia y de 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 la posee. [5]

Las variables de instancia son propiedades de ese objeto. Todas las instancias de una clase tienen sus propias copias de las 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 tanto variables de instancia como 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 puede modificarse directamente, siempre que se establezcan restricciones de acceso . [6]

Ejemplo

C++

estructura Solicitud {   static int count1 ; // el nombre de la variable no es importante int número ;      Solicitud () { numero = count1 ; // modifica la variable de instancia "this->number" ++ count1 ; // modifica la variable de clase "Request::count1" }        };int Solicitud :: count1 = 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 que se incremente . Como numberes una variable de instancia, cada Requestobjeto contiene su propio valor distintivo; por el contrario, solo 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 = newValue ; } }                //Principal.javaclase  Main { public static void main ( String [] args ) { Ejemplo ejemplo1 = new Ejemplo (); Ejemplo ejemplo2 = new Ejemplo (); //Podemos establecer el valor de x por sí mismo, ya que la variable es public example1 . x = 10 ; assert example1 . x == 10 ; assert example2 . x == 0 ; //Como setX es un método de instancia, también puede acceder a la variable example2 . setX ( - 10 ); assert example1 . x == 10 ; assert example2 . x == - 10 ; } }                                            

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

Pitón

clase  Perro :  def  __init__ ( self ,  raza ):  self.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 en C++". Dremendo . Consultado el 8 de marzo de 2024 .
  2. ^ "Variables de Java". GeeksforGeeks . 2017-02-06 . Consultado el 2024-03-08 .
  3. ^ "El tutorial de Java, variables". docs.oracle.com . Oracle. 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". GeeksforGeeks . 2021-04-26 . Consultado el 2024-03-08 .
  5. ^ "Tutoriales de Java, comprensión de los miembros de clase". docs.oracle.com . Oracle. Archivado desde el original el 11 de octubre de 2014 . Consultado el 23 de octubre de 2014 .
  6. ^ Matuszek, David. "Static". cis.upenn.edu . Universidad de Pensilvania. Archivado desde el original el 23 de octubre de 2014 . Consultado el 23 de octubre de 2014 .