stringtranslate.com

Variable de clase

En la programación orientada a objetos y basada en clases , una variable de clase es una variable definida en una clase de la que 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 de 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 a través de un envío 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 envían dinámicamente.

Por lo tanto, en algunos lenguajes, variable miembro estática o función miembro estática se utilizan como sinónimos o en lugar de "variable de clase" o "función de clase", pero no son sinónimos en todos los lenguajes. Estos términos se utilizan 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++

estructura Solicitud {   int estático cuenta ;   int numero ;  Solicitud de objeto () {  numero = count ; // modifica la variable de instancia "this->number"    ++ count ; // modifica la variable de clase "Request::count"  }};int Solicitud :: count = 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 a cada nuevo objeto Request se le asigna un numberen orden secuencial. Como countes una variable de clase, solo hay un objeto Request::count; por el contrario, cada objeto Request 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 claseperro_1  =  Perro print ( perro_1 . vertebrado_group )  # accediendo a la variable de clase

En el código Python anterior, no se proporciona mucha información, ya que solo hay una variable de clase en la clase Dog 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) al tener una o más variables de instancia en la clase Dog.

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 instancias y clases" . Consultado el 21 de octubre de 2010 .
  3. ^ "Referencia del lenguaje Python, sentencias compuestas" . Consultado el 21 de octubre de 2010 .
  4. ^ "Objective-C Runtime Reference". Apple Developer . Consultado el 1 de abril de 2018 .
  5. ^ ab "Variables de clase en C#". Syntaxdb . Consultado el 1 de abril de 2018 .