En la programación orientada a objetos , una variable miembro (a veces llamada campo miembro ) es una variable que está asociada con un objeto específico y es accesible para todos sus métodos ( funciones miembro ).
En los lenguajes de programación basados en clases , estas se distinguen en dos tipos: variables de clase (también llamadas variables miembro estáticas ), donde solo se comparte una copia de la variable con todas las instancias de la clase ; y variables de instancia , donde cada instancia de la clase tiene su propia copia independiente de la variable. [1]
Para ejemplos
C++
clase Foo { int bar ; // Variable miembro pública : void setBar ( const int newBar ) { bar = newBar ; } };
int main () { Foo rect ; // Variable local
devuelve 0 ; }
Java
public class Program { public static void main ( String [] args ) { // Esta es una variable local. Su duración // está determinada por el ámbito léxico. Foo foo ; } }
public class Foo { /* Esta es una variable miembro: se creará una nueva instancia de esta variable para cada nueva instancia de Foo. La vida útil de esta variable es igual a la vida útil de "esta" instancia de Foo */
int barra ; }
Pitón
clase Foo :
def __init __ ( self )
: self._bar = 0
@property
def bar ( self ) :
devuelve self._bar
@bar . setter
def bar ( self , new_bar ):
self . _bar = new_bar
f = Foo ()
f . bar = 100
print ( f . bar )
Ceceo común
( defclass foo () ( bar )) ( defvar f ( make-instance 'foo )) ( setf ( valor-ranura f 'bar ) 100 ) ( print ( valor-ranura f 'bar ))
Rubí
/*
Ruby tiene tres tipos de variables miembro: clase, instancia de clase e instancia.
*/
Clase perro
# La variable de clase se define dentro del cuerpo de la clase con dos arrobas
# y describe datos sobre todos los perros *y* sus razas de perros derivadas (si las hay) @@sniffs = true
fin
mutt = Perro . nuevo mutt . clase . husmea #=> verdadero
clase Caniche < Perro
# La "variable de instancia de clase" se define dentro del cuerpo de la clase con un solo signo arroba
# y describe datos solo sobre la clase Poodle. No hace ninguna afirmación sobre su clase padre # o cualquier posible subclase derivada de Poodle @sheds = false
# Cuando se crea una nueva instancia de Poodle, por defecto no está entrenada. La variable 'trained'
# es local al método initialize y se utiliza para establecer la variable de instancia @trained # Una variable de instancia se define dentro de un método de instancia y es miembro de la instancia de Poodle def initialize ( trained = false ) @trained = trainer end
def tiene modales? @trained fin
fin
p = Caniche . nuevo p . clase . muda #=> falso p . tiene_modales? #=> falso
PHP
<?php
clase Ejemplo
{
/**
* Variable miembro de instancia de ejemplo.
*
* Las variables miembro pueden ser públicas, protegidas o privadas.
*
* @var int
*/
public int $foo ;
/**
* Ejemplo de variable miembro estática.
*
* @var bool
*/
protected static int $bar ;
/**
* Método constructor de ejemplo.
*
* @param int $foo
*/
public function __construct ( int $foo )
{
// Establece foo.
$this -> foo = $foo ;
}
}
// Crea un nuevo objeto de ejemplo.
// Establece la variable miembro "foo" en 5.
$example = new Example ( 5 );
// Sobrescribe la variable miembro "foo" a 10.
$example -> foo = 10 ;
// Imprime 10.
echo $example -> foo ;
Lua
--region ejemplo
--- @class ejemplo_c
--- @field foo número Ejemplo "variable miembro".
ejemplo_c local = {} ejemplo_mt local = { __index = ejemplo_c }
--- Crea un objeto a partir de un ejemplo.
--- @return example_c
function example_c . new ( foo )
-- El primer argumento de la tabla son las variables miembro de nuestro objeto.
-- En Lua, un objeto es una metatabla y sus variables miembro son pares clave-valor de la tabla.
return setmetatable ({
foo = foo
}, example_mt )
end
--endregion
-- Crea un objeto de ejemplo.
-- Establece la variable miembro "foo" en 5.
local example = example_c . new ( 5 )
-- Sobrescribe la variable miembro "foo" por 10.
ejemplo . foo = 10
-- Imprime 10.
print ( ejemplo . foo )
Véase también
Referencias
- ^ Richard G. Baldwin (10 de marzo de 1999). "P: ¿Qué es una variable miembro?". Tutoriales de programación de Richard G Baldwin . Consultado el 12 de agosto de 2011.
Una variable miembro es un miembro de una clase (variable de clase) o un miembro de un objeto instanciado a partir de esa clase (variable de instancia). Debe declararse dentro de una clase, pero no dentro del cuerpo de un método de la clase.
