Variable estática

Variable estática

En informática una variable estática es una variable cuyo valor no varía durante la vida del proceso en ejecución. Normalmente una variable estática tiene un ámbito más amplio que otras variables. Los valores de variables estáticas se pueden establecer una vez (durante el tiempo de ejecución) o se pueden cambiar en múltiples ocasiones durante la ejecución del programa. La terminología "variable estática" se basa en C y C++, pero también se usa en muchos lenguajes de programación derivados. En lenguajes de diferente origen el mismo concepto puede denominarse "variable global".

Contenido

Constantes

Los programas informáticos pueden almacenar constantes en variables constant o en variables static, dependiendo de las posibilidades del lenguaje de programación. Por ejemplo, un programa que usa una aproximación de pi es más fácil de escribir, leer y mantener con una variable llamada "PI" en lugar de múltiples ocurrencias de "3.14159".

Ámbito

En el lenguaje de programación C se usa static con variables globales y funciones para restringir su ámbito al archivo donde se definen. Con variables locales, static se usa para almacenar la variable en la memoria asignada de forma estática en lugar de la memoria asignada de forma automática. Siempre y cuando el lenguaje no fije la implementación del tipo de memoria a usar, la memoria asignada de forma estática se reserva normalmente en el segmento de datos del programa durante la compilación, mientras que la memoria asignada de forma automática es normalmente implementada como pila de llamadas transitorio.

Variables locales

Artículo principal: Variable local

La mayoría de los lenguajes de programación incluyen la posibilidad de usar subrutinas. Las variables de ámbito local en las subrutinas (variables locales) se crean y destruyen normalmente dentro de la propia subrutina (denominadas variable automática. Algunos lenguajes, sin embargo, (ej. lenguaje de programación C) permiten a las subrutinas retener el valor de las variables entre las llamadas a la función, de forma que la función puede preservar el valor de las variables si fuera necesario. Por ejemplo, una variable estática puede registrar el número de veces que una subrutina ha sido ejecutada. Para este propósito también es possible servirse de variables globales o de almacenamiento externo (ej. un archivo en un disco). Adicionalmente limita el ámbito del compilador de la variable en cuestión a esa function, incluso cuando el espacio asignado se encuentra en el área estática.

Clases

Artículo principal: Clase (informática)

Lenguajes orientados a objetos usan clases y objetos. En este caso, una variable de clase es una variable que no está asociada con instancias de la clase. Sólo hay una única copia de la variable que se comparte entre los métodos de todas las instancias independientemente de su cantidad. En C++, las variables de clase se conocen como miembros de datos estáticos.

Ejemplo en C#

public class Request
{
        private static int count;
        private string url;
 
        public Request()
        {
                //Create a new instance of Request
                //Count all requests
                Request.count++;
        }
 
        public string Url
        {
                get
                {
                        return this.url;
                }
                set
                {
                        this.url = value;
                }
        }
 
        public static int Count
        {
                get
                {
                        //Do not use the this keyword here
                        //as this refers to "THIS INSTANCE"
 
                        return Request.count;
                }
                //Do not allow the developer to SET this value
        }
}

Ejemplo en C++

class Request
{
        private:
                static int count;
                string url;
 
        public:
                Request() { count++; }
                string getUrl() const { return url; }
                void setUrl(string value) { url = value; }
                static int getCount() { return count; }
};
int Request::count = 0;

En este ejemplo, count se aplica a la clase mientra que url se aplica a cada instancia. Nótese que la variable count debe inicializarse al margen de la clase.

Referencias

Véase también


Wikimedia foundation. 2010.

Игры ⚽ Поможем решить контрольную работу

Mira otros diccionarios:

  • Variable global — Una variable global es, en informática, una variable accesible en todos los ámbitos de un programa informático. Los mecanismos de interacción con variables globales se denominan mecanismos de entorno global. El concepto de entorno global… …   Wikipedia Español

  • Variable local — Una variable local es, en informática, la variable a la que se le otorga un ámbito local. Tales variables sólo pueden accederse desde la función o bloque de instrucciones en donde se declaran. Las variables locales se contraponen a las variables… …   Wikipedia Español

  • Campo electromagnético variable — Saltar a navegación, búsqueda Un campo electromagnético dependiente del tiempo es un campo generado por una distribución no estacionaria de cargas móviles. Para un campo de ese tipo, es necesario contar con las contribuciones de las derivadas… …   Wikipedia Español

  • Singleton — Para el término matemático, véase Conjunto unitario. El patrón de diseño singleton (instancia única) está diseñado para restringir la creación de objetos pertenecientes a una clase o el valor de un tipo a un único objeto. Su intención consiste en …   Wikipedia Español

  • Log4j — Apache log4j Desarrollador Apache Software Foundation http://logging.apache.org/log4j Información general Última versión estable 1.2.16 …   Wikipedia Español

  • Lenguaje de programación — Captura de la microcomputadora Commodore PET 32 mostrando un programa en el lenguaje de programación BASIC, bajo el emulador VICE en una distribución GNU/Linux. Un lenguaje de programación es un idioma artificial diseñado para expresar… …   Wikipedia Español

  • Lockheed Martin F-16 Fighting Falcon — F 16 Fighting Falcon Un F 16C Fighting Falcon de la Fuerza Aérea de los Estados Unidos …   Wikipedia Español

  • Celosía (ingeniería) — Saltar a navegación, búsqueda Puente a base celosías planas en sus caras construido para un antiguo ferrocarril (ahora convertido en puente peatonal) En ingeniería estructural, una celosía es una estructura reticular de barras rectas… …   Wikipedia Español

  • XHarbour — Saltar a navegación, búsqueda xHarbour es un compilador extendido de Clipper en múltiples plataformas de ordenador (DOS, Microsoft Windows, Linux (32 y 64 bits), Unix (32 y 64 bits), Mac OS X), ofreciendo múltiples terminales gráficas y drivers… …   Wikipedia Español

  • xHarbour — es un compilador extendido de Clipper en múltiples plataformas de ordenador (DOS, Microsoft Windows, Linux (32 y 64 bits), Unix (32 y 64 bits), Mac OS X), ofreciendo múltiples terminales gráficas y drivers de consola, GUIs (libres como HWGui,… …   Wikipedia Español

Compartir el artículo y extractos

Link directo
Do a right-click on the link above
and select “Copy Link”