En 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 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]
clase Foo { int barra ; // Variable miembro pública : void setBar ( const int newBar ) { bar = newBar ; } }; int principal () { Foo rect ; //variable local devolver 0 ; }
programa de clase pública { public static void main ( String [] args ) { // Esta es una variable local. Su duración // está determinada por el alcance 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 */ barra interna ; }
clase Foo : def __init__ ( self ): self . _barra = 0 @property def bar ( self ): devuelve self . _bar @bar . setter def bar ( self , new_bar ): self . _bar = nueva_barraf = Foo () f . barra = 100 imprimir ( f . barra )
( defclass foo () ( barra )) ( defvar f ( make-instance 'foo )) ( setf ( valor de ranura f ' barra ) 100 ) ( print ( valor de ranura f ' barra ))
/* Ruby tiene tres tipos de variables miembro: clase, instancia de clase e instancia. */perro de clase # La variable de clase se define dentro del cuerpo de la clase con dos signos de arroba # y describe datos sobre todos los perros *y* sus razas de perros derivadas (si las hay) @@sniffs = true finchucho = Perro . nuevo perro callejero . clase . huele #=> verdadero clase Caniche < Perro # La "variable de instancia de clase" se define dentro del cuerpo de la clase con un solo signo de arroba # y describe datos sólo sobre la clase Poodle. No hace ningún reclamo sobre su clase principal # o cualquier posible subclase derivada de Poodle @sheds = false # Cuando se crea una nueva instancia de Poodle, de forma predeterminada no está entrenada. La variable 'entrenada' # es local al método de inicialización y se usa 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 inicializar ( entrenada = false ) @trained = extremo entrenado def tiene modales? @final entrenado finp = Caniche . nuevo p . clase . cobertizos #=> false p . ¿Tiene modales? #=> falso
<?phpclass Ejemplo { /** * Ejemplo de variable miembro de instancia. * * 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 ; /** * Ejemplo de método constructor. * * @param int $foo */ public function __construct ( int $foo ) { // Establece foo. $esto -> foo = $foo ; } }// Crea un nuevo objeto de ejemplo. // Establece la variable miembro "foo" en 5. $ejemplo = nuevo Ejemplo ( 5 );// Sobrescribe la variable miembro "foo" a 10. $ejemplo -> foo = 10 ;// Imprime 10. echo $ejemplo -> foo ;
--ejemplo de región --- @class ejemplo_c --- @field foo número Ejemplo "variable miembro". ejemplo_c local = {} ejemplo_mt local = { __index = ejemplo_c } --- Crea un objeto a partir del ejemplo. --- @return ejemplo_c función ejemplo_c . nuevo ( foo ) : el primer argumento de la tabla son las variables miembro de nuestro objeto. -- En un objeto Lua hay una metatabla y sus variables miembro son pares clave-valor de tabla. devolver setmetatable ({ foo = foo }, example_mt ) fin --endregion-- Crea un objeto de ejemplo. - Establezca la variable miembro "foo" en 5. ejemplo local = ejemplo_c . nuevo ( 5 ) -- Sobrescribe la variable miembro "foo" en 10. ejemplo . foo = 10-- Imprime 10. print ( ejemplo . foo )
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.