stringtranslate.com

variable de clase

En la programación orientada a objetos basada en clases , una variable de clase es una variable definida en una clase de la cual existe una única copia, independientemente de cuántas instancias de la clase existan. [1] [2] [3] [4] [5]

Una variable de clase no es una variable de instancia . Es un tipo especial de atributo de clase (o propiedad de clase, campo o miembro de datos). La misma dicotomía entre miembros de instancia y clase se aplica también a los métodos ("funciones miembro"); una clase puede tener tanto métodos de instancia como métodos de clase .

Variables miembro estáticas y funciones miembro estáticas

En algunos lenguajes, las variables de clase y los métodos de clase se resuelven estáticamente, no mediante despacho dinámico , o su memoria se asigna estáticamente en tiempo de compilación (una vez para toda la clase, como variables estáticas ), no se asigna dinámicamente en tiempo de ejecución (en cada instancia de un objeto). En otros casos, sin embargo, uno o ambos son dinámicos. Por ejemplo, si las clases se pueden definir dinámicamente (en tiempo de ejecución), las variables de clase de estas clases se asignan dinámicamente cuando se define la clase y, en algunos lenguajes, los métodos de clase también se distribuyen dinámicamente.

Por lo tanto, en algunos idiomas, la variable miembro estática o la función miembro estática se usan como sinónimos o en lugar de "variable de clase" o "función de clase", pero no son sinónimos en todos los idiomas. Estos términos se usan comúnmente en Java , C# , [5] y C++ , donde las variables de clase y los métodos de clase se declaran con la staticpalabra clave y se denominan variables miembro estáticas o funciones miembro estáticas .

Ejemplo

C++

Solicitud de estructura {   recuento de enteros estáticos ;   número entero ;  Objeto de solicitud () {  número = contar ; // modifica la variable de instancia "este->número"    ++ contar ; // modifica la variable de clase "Request::count"  }};int Solicitud :: cuenta = 0 ;   

En este ejemplo de C++, la variable de clase Request::countse incrementa en cada llamada al constructor , de modo que Request::countsiempre contiene la cantidad de solicitudes que se han construido y cada nuevo objeto de solicitud recibe un numberorden secuencial. Como countes una variable de clase, solo hay un objeto Request::count; por el contrario, cada objeto Solicitud contiene su propio numbercampo distinto.

Tenga en cuenta también que la variable Request::countse inicializa sólo una vez.

Pitón

clase  Perro :  grupo_vertebrado  =  'mamíferos'  # variable de clasedog_1  =  Impresión de perro ( dog_1 . vertebrado_group ) # accediendo a la variable de clase 

En el código Python anterior, no proporciona mucha información ya que solo hay una variable de clase en la clase Perro que proporciona el grupo de vertebrados de perros como mamíferos. En la variable de instancia, puede personalizar su propio objeto (en este caso, dog_1) teniendo una o más variables de instancia en la clase Perro.

Notas

  1. ^ "El tutorial de Java, variables" . Consultado el 21 de octubre de 2010 .
  2. ^ "El tutorial de Java: comprensión de los miembros de la instancia y la clase" . Consultado el 21 de octubre de 2010 .
  3. ^ "La referencia del lenguaje Python, declaraciones compuestas" . Consultado el 21 de octubre de 2010 .
  4. ^ "Referencia del tiempo de ejecución de Objective-C". Desarrollador de Apple . Consultado el 1 de abril de 2018 .
  5. ^ ab "Variables de clase en C#". Sintaxisdb . Consultado el 1 de abril de 2018 .