En la programación orientada a objetos con 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 o instancia separada. Una variable de instancia tiene similitudes con una variable de clase , [1] 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 asignar modificadores de acceso a la variable de instancia.
Una variable de instancia no es una variable de clase, aunque existen similitudes. Es un tipo de atributo de clase (o propiedad de clase, campo o miembro de datos). La misma dicotomía entre instancia y miembros de clase se aplica también a los métodos ("funciones miembro"); una clase puede tener ambos métodos de instancia y métodos de la clase .
Cada variable de instancia vive en la memoria durante la vida del objeto al que pertenece. [2]
Las variables son propiedades que un objeto conoce sobre sí mismo. Todas las instancias de un objeto tienen sus propias copias de las variables de instancia, incluso si el valor es el mismo de un objeto a otro. Una instancia de objeto puede cambiar los valores de sus variables de instancia sin afectar a todas las demás instancias. Las variables de instancia pueden ser utilizadas por todos los métodos de una clase a menos que el método se declare como estático. [3]
Ejemplo
solicitud de estructura { static int count1 ; // el nombre de la variable no es importante int número ; Solicitud () { número = recuento1 ; // modifica la variable de instancia "this-> number" ++ count1 ; // modifica la variable de clase "Request :: count1" }};int Request :: count1 = 0 ;
En este ejemplo de C ++, la variable de instancia Request::number
es una copia de la variable de clase Request::count1
donde a cada instancia construida se le asigna un valor secuencial count1
antes de que se incremente . Dado que number
es una variable de instancia, cada Request
objeto contiene su propio valor distinto; por el contrario, solo hay un objeto Request::count1
disponible para todas las instancias con el mismo valor.
Referencias
- ^ "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 .
- ^ "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 .
- ^ 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 .